Таблица — Конфликт onTouchEvent и OnClickListener

У меня есть TableLayout с HScroll и VScroll, поэтому я могу прокручивать во всех направлениях. Для этого прокручиваемого макета я использовал: Scrollview по вертикали и горизонтали в android . Это использует onTouchEvent.

В моем TableLayout есть элементы с onClickListener.

Когда я прокручиваю таблицу и касаюсь элемента с помощью onClickListener, прокрутка не работает. Когда я просто нажимаю на элемент, onClickListener работает нормально. Но я также хочу прокручивать эти элементы, когда используется жест перемещения.

Как я могу решить этот конфликт между onTouchEvent и onClickListener?

Это мой onTouchEvent:

@Override
public boolean onTouchEvent(MotionEvent event) {

    switch (event.getAction()) {

        case MotionEvent.ACTION_DOWN:
            if(true) {
                mx = event.getX();
                my = event.getY();
            }
            break;
        case MotionEvent.ACTION_MOVE:
            if(true) {
                curX = event.getX();
                curY = event.getY();
                vScroll.scrollBy((int) (mx - curX), (int) (my - curY));
                hScroll.scrollBy((int) (mx - curX), (int) (my - curY));
                mx = curX;
                my = curY;
            }
            break;
        case MotionEvent.ACTION_UP:
            if(true) {
                curX = event.getX();
                curY = event.getY();
                vScroll.scrollBy((int) (mx - curX), (int) (my - curY));
                hScroll.scrollBy((int) (mx - curX), (int) (my - curY));
            }
            break;
    }

    return true;
}

person gdingenen    schedule 10.05.2013    source источник


Ответы (1)


Попробуйте просто вернуть false из метода onTouchEvent, чтобы указать системе Android, что вы не использовали событие, и она должна продолжать передавать его...

person Mehmed Mert    schedule 14.08.2013