Android - предоставление приоритета onTouch над onClick

У меня есть активность, которая позволяет пользователям проводить между 3 различными видами. Каждый вид отображает список изображений. Изображения имеют события onClick, которые вызывают новое действие и делают изображения полноэкранными. Все это работает нормально, однако, если я попытаюсь провести пальцем между 3 различными видами, и мой палец проведет пальцем по изображению, это вызовет событие onClick и откроет изображение в полноэкранном режиме. Поэтому мне интересно, как я могу поставить приоритет на onTouch (для замены страницы / просмотра)?

(событие onTouch использует gestListener, а я использую методы onFling и flipper..) (onClick - это просто imageView.setOnClickListener(new OnClickListener())

2 ответа

Если вы вернете true из onFling(…), оно должно поглотить событие и прекратить распространение.

Здесь вы можете найти решение для делегирования касания от родительского к дочернему виду, если вам нужна дополнительная информация.

mDrawerLayout.post(() -> {
        Rect delegateArea = new Rect();

        mCalendarView.getHitRect(delegateArea);
        delegateArea.right += 100;
        delegateArea.bottom += 100;

        TouchDelegate touchDelegate = new TouchDelegate(delegateArea, mCalendarView);

        if (View.class.isInstance(mCalendarView.getParent())) {
            ((View) mCalendarView.getParent()).setTouchDelegate(touchDelegate);
        }
    });
Другие вопросы по тегам