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);
}
});