У меня есть кнопка. По нажатию кнопки я оживляю TextView.
Во время анимации клик не работает для просмотра текста.
buttonclick.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final Animation animation = new TranslateAnimation(
Animation.RELATIVE_TO_SELF, 1.0f,
Animation.RELATIVE_TO_SELF, 10.0f,
Animation.RELATIVE_TO_SELF, 1.0f,
Animation.RELATIVE_TO_SELF, 10.0f);
animation.setDuration(100000);
textView.startAnimation(animation);
}
});
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this,"Click",Toast.LENGTH_SHORT).show();
}
});
2 ответа
Animation
- это только анимация представлений, не изменяющаяся, это иллюзия ... Вы используете TranslateAnimation
, поэтому вы перемещаете свои представления " смотри ", а не само представление. В конце концов, вы можете использовать метод setFillAfter(true)
, тогда View
будет кликабельным ПОСЛЕ окончания анимации (но ваша анимация длинная / бесконечная ...).
Попробуйте вместо этого использовать Animator
, который меняет «параметры» (в вашем случае реальную позицию) вида с каждым кадром анима
ObjectAnimator animX = ObjectAnimator.ofFloat(textView, "x", newx);
ObjectAnimator animY = ObjectAnimator.ofFloat(textView, "y", newy);
AnimatorSet animSetXY = new AnimatorSet();
animSetXY.playTogether(animX, animY);
animSetXY.start();
Попробуй это
PropertyValuesHolder x = PropertyValuesHolder.ofFloat("x", 50f);
PropertyValuesHolder y = PropertyValuesHolder.ofFloat("y", 100f);
ObjectAnimator.ofPropertyValuesHolder(mTextView, x, y).start();
Таким образом, вы можете анимировать весь объект представления, а не только его содержимое.
Новые вопросы
android
Android - это мобильная операционная система Google, используемая для программирования или разработки цифровых устройств (смартфоны, планшеты, автомобили, телевизоры, одежда, стекло, IoT). Для тем, связанных с Android, используйте специальные теги Android, такие как android-intent, android-activity, android-адаптер и т. Д. Для вопросов, не связанных с разработкой или программированием, но связанных с платформой Android, используйте эту ссылку: https: // android.stackexchange.com .