Вы всегда можете отключить событие click с флагом и включить его снова, когда анимация закончится.Это не идеальное решение, но в большинстве случаев оно работает достаточно хорошо.
Например, если вы используете Animator
для анимации, вы можете сделать что-то вроде этого:
private boolean isClickEnabled = true;
...
@Override
public synchronized void onClick(View v) {
if (isClickEnabled) {
// We disable the click, which will be enabled again when the animation ends
isClickEnabled = false;
...
animator.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
// We enable the click again now that the animation has finished
isClickEnabled = true;
}
});
animator.start();
}
}
То же самое относится и к классу Animation
, но вместо AnimationListener
.
Обратите внимание, что вместо сохранения локального логического значения вы можете просто отключить и включитьщелчок по представлению с использованием view.setClickable(true/false)
- это действительно зависит от того, что вам нужно, и от вашей реализации, но основная идея остается той же.