Android: не видно ACTION_MOVE / UP в onTouchEvent of RelativeLayout - PullRequest
9 голосов
/ 09 мая 2011

Я зарегистрировал слушателя RelativeLayout, см. Ниже. Я хотел бы добавить пользовательскую обработку событий,

mOnTouchListener = new OnTouchListener() {
        @Override
        public boolean onTouch(View view, MotionEvent motionEvent) {
            final int action = motionEvent.getAction();
            boolean ret = false;

            switch (action) {
            case MotionEvent.ACTION_DOWN:
                ret = doSth(motionEvent);
                break;
            case MotionEvent.ACTION_MOVE:
                ret = doSth(motionEvent);
                break;
            case MotionEvent.ACTION_UP:
                ret = doSth(motionEvent);
                break;
            }

            return ret;     // returning false got me none of MOVE/UP events right here
        }
    };

Однако я не могу получить никаких событий MOVE / UP, если не возвращено значение true.

Еще одна попытка, я зарегистрировал того же слушателя CheckBox, все прошло хорошо.
Есть ли разница между ViewGroup и Widget? Цель дизайна?

1 Ответ

24 голосов
/ 09 мая 2011

"Однако я не могу получить никаких событий MOVE / UP, если не возвращено значение true."

Вы ответили на свой вопрос. Если вы не вернете true, указывая, что вы заботитесь о событии и обрабатываете его, система не отправит вам последующие события, потому что вы сказали системе, что вас это не волнует. Если вам нужно отслеживать весь жизненный цикл сенсорного события, вам нужно возвращать true всегда.

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