我有一项活动,允许用户在3个不同的视图之间滑动。每个视图都显示一个图像列表。图像具有调用新活动的onClick事件,并使图像全屏显示。 这一切都正常但是如果我尝试在3个不同的视图之间滑动并且我的手指在图像上滑动它将触发onClick事件并打开全屏图像。所以我想知道如何优先考虑onTouch(用于页面/视图交换)?
(onTouch事件使用一个gestureListener,我正在使用onFling和flipper方法..) (onClick只是一个imageView.setOnClickListener(new OnClickListener())
答案 0 :(得分:3)
如果从onFling(...)返回true,它应该使用事件并停止传播。
答案 1 :(得分:0)
如果需要更多信息,可以找到here解决方案,用于将触摸从父视图委派给子视图。
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);
}
});