Я определяю CompoundDrawable
для кнопки и реагирую на клики по ней:
mFileSelector.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
final int DRAWABLE_LEFT = 0;
final int DRAWABLE_TOP = 1;
final int DRAWABLE_RIGHT = 2;
final int DRAWABLE_BOTTOM = 3;
if (event.getAction() == MotionEvent.ACTION_UP) {
if (event.getRawX() >= (mFileSelector.getRight() - mFileSelector.getCompoundDrawables()[DRAWABLE_RIGHT].getBounds().width())) {
mFileSelector.setSelected(false);
mFileSelector.setPressed(false);
mFileSelector.clearFocus();
return true;
}
}
return false;
}
Как видите, я пробовал setSelected
, setPressed
и clearFocus
, но ни один из них не помог. Кнопка остается в «нажатом» состоянии после положительного значения onTouch
(что означает, что я использовал событие касания)