Нажатая кнопка - PullRequest
       4

Нажатая кнопка

0 голосов
/ 30 апреля 2019

У меня есть класс "myButton", который наследуется от класса "Button".Внутри реализован метод «onTouch», который работает при нажатии кнопки.И мне нужно выполнять действия, когда вы нажимаете в любом месте за пределами кнопки.

Можно ли проверить, что касание было выполнено вне кнопки?

У меня возникла идея добавитькоснитесь кнопки для просмотра (полный экран).Но в этом случае, если вы нажмете на кнопку, будут активированы два события «onTouch»: внутри моего класса «myButton» и нажатия кнопки «Просмотр».

1 Ответ

0 голосов
/ 04 мая 2019

Если вы хотите обработать нажатие и отпустить кнопку, вы можете просто сделать

    Button button = (Button) findViewById(R.id.button);
    button.setOnTouchListener(new View.OnTouchListener() {        
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        switch(event.getAction()) {
            case MotionEvent.ACTION_DOWN:
                // PRESSED
                break; // if you want to handle the touch event
            case MotionEvent.ACTION_UP:
            case MotionEvent.ACTION_CANCEL
                // RELEASED
                break; // if you want to handle the touch event
        }
        return false;
    }
});

это будет обрабатываться, если кнопка нажата, и если кнопка отпущена, и если вы просто хотите нажать, вы можете изменить соответствующим образом

У вас есть kotlin и java, оба помечены как java, так что если вы хотите, чтобы это было в kotlin, просто дайте мне знать

ps, я возвращаю false, потому что если вы этого не сделаете, вы обойдете обычную сенсорную обработку кнопки. Это означает, что вы потеряете визуальные эффекты нажатия кнопки вниз и пульсации касания. Кроме того, Button # isPressed () будет возвращать false, пока кнопка фактически нажата.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...