OnclickListener для Анимированного Представления - PullRequest
3 голосов
/ 14 февраля 2012

найдено много вопросов по той же проблеме.

Как установить OnClickListener в ImageView после анимации вращения

Как написать слушатель onclick для представления после анимации?

У меня тоже такая же проблема, есть предложения?

1 Ответ

3 голосов
/ 14 февраля 2012

Вы должны написать свежий, краткий вопрос о вашей конкретной проблеме, а не просто указывать на другие вопросы. Два связанных вопроса не совсем понятны.

Я предполагаю, что ваша проблема в том, что после применения анимации (например, TranslateAnimation) к View, View больше не реагирует на события касания в своей новой позиции. Причина этого в том, что View не был перемещен на новую позицию с точки зрения параметров макета, а скорее к нему применено преобразование.

Решение довольно простое: сразу после завершения анимации фактически переместите View на новую позицию. Вы можете установить myAnimation.setFillAfter() = false и настроить слушателя на физическое перемещение View в целевое местоположение после завершения анимации:

myAmazingAnimation.setFillAfter() = false;
myAmazingAnimation.setAnimationListener(new Animation.AnimationListener(){

                @Override
                public void onAnimationEnd(Animation animation) {
                          // Now actually move the View using LayoutParams
                }

                @Override
                public void onAnimationRepeat(Animation animation) {                    
                }

                @Override
                public void onAnimationStart(Animation animation) {
                }

            });

Другим вариантом является физическое перемещение View в начале до применения анимации, а , а затем применяет анимацию, которая заставляет View начинать с того места, где она была, и заканчиваться 0,0. ,

...