Подтвердить что ты не робот

Что означает логическое значение, возвращаемое из метода обработки событий в Android

В android большинство методов прослушивателя событий возвращают логическое значение. Что означает истинное/ложное значение? что это приведет к событиям подпоследовательности?

class MyTouchListener implements OnTouchListener {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        logView.showEvent(event);
        return true;
    }
}

Относительно вышеприведенного примера, если return true в методе onTouch, я обнаружил, что каждое событие касания (DOWN, UP, MOVE и т.д.) было зафиксировано в соответствии с моим журналом > . Напротив, если return false, то происходит событие DOWN. Поэтому кажется, что return false предотвратит распространение события. Правильно ли я?

Кроме того, в OnGestureListener многие методы также должны возвращать логическое значение. Имеют ли они то же значение?

4b9b3361

Ответ 1

Если вы возвращаете true из события ACTION_DOWN, вас интересуют остальные события в этом жесте. "Жест" в этом случае означает все события до окончательного ACTION_UP или ACTION_CANCEL. Возврат false из ACTION_DOWN означает, что вы не хотите, чтобы событие и другие представления имели возможность обрабатывать его. Если у вас есть перекрывающиеся представления, это может быть представление о сестре. Если нет, то это будет пузырь до родителя.

Ответ 3

Логическое значение определяет, потребляется ли событие или нет.

Да, вы правы. Если вы вернете false, следующий прослушиватель обработает событие. Если он возвращает true, событие будет потребляться вашим слушателем и не отправлено следующему методу.

Ответ 4

Я потерял почти один день при поиске и устранении неисправностей, но я узнал, что моя функция onTouch вызывается 2 раза при использовании true и 1 раз при использовании false.