Вы должны написать свежий, краткий вопрос о вашей конкретной проблеме, а не просто указывать на другие вопросы. Два связанных вопроса не совсем понятны.
Я предполагаю, что ваша проблема в том, что после применения анимации (например, 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
. ,