У меня возникла проблема с пользовательской кнопкой, которую я создал. Он состоит из коробки и небольшой линии под ней.Android: обнаружение внешней кнопки ACTION_UP
При нажатии на кнопку анимируется вниз, когда вы нажимаете на нее и снова включаете ее. Это обрабатывается в CustomButton.class:
super.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getActionMasked() == MotionEvent.ACTION_DOWN) {
buttonContent.startAnimation(rectMoveDown);
colorDown.start();
return false;
}
if (event.getActionMasked() == MotionEvent.ACTION_UP) {
buttonContent.startAnimation(rectMoveUp);
colorUp.start();
return false;
}
return false;
}
});
Тогда в остальной части приложения я использую эту кнопку и установить clicklistener к нему. Поэтому я возвращаю false (я думаю, что это правильно, по крайней мере), так как я не хочу потреблять событие, но передаю его клиенту-клиенту в иерархии.
Однако проблема возникает, когда я сначала нажимаю на кнопку, передвигаю палец за кнопкой, а затем отпустите экран. Затем кнопка не отображает анимацию, выполненную в прослушивателе ACTION_UP.
Кто-нибудь знает, как это исправить?
Это не работает для меня! Во-первых, мне нужно вернуть false, поскольку в противном случае кнопка не будет запускать подключенный к нему клик-прослушиватель. И даже когда я вернусь, это не сработает. –