Кнопка остается в нажатом состоянии после обратного вызова OnTouch - PullRequest
0 голосов
/ 14 января 2019

Я определяю 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 (что означает, что я использовал событие касания)

1 Ответ

0 голосов
/ 15 января 2019

Вам нужно изменить фон кнопки, что-то вроде этого поможет вам.

 if (enabled) {
        your_button?.background = ContextCompat.getDrawable(this, R.drawable.round_button_blue)
    } else {
        your_button?.background = ContextCompat.getDrawable(this, R.drawable.round_button_gray)
    }
...