android-赋予onTouch高于onClick的优先级

android-赋予onTouch高于onClick的优先级,android,view,onclick,touch,swipe,Android,View,Onclick,Touch,Swipe,我有一个活动,允许用户在3个不同的视图之间滑动。每个视图都显示一个图像列表。这些图像具有调用新活动的onClick事件,并使图像全屏显示。 这一切都正常,但是如果我尝试在3个不同的视图之间滑动,并且我的手指在图像上滑动,它将触发onClick事件并打开图像全屏。因此,我想知道如何在onTouch(页面/视图交换)上设置优先级 (onTouch事件使用一个gestureListener,我使用的是onFling和flipper方法..) (onClick只是一个imageView.setOnCli

我有一个活动,允许用户在3个不同的视图之间滑动。每个视图都显示一个图像列表。这些图像具有调用新活动的onClick事件,并使图像全屏显示。 这一切都正常,但是如果我尝试在3个不同的视图之间滑动,并且我的手指在图像上滑动,它将触发onClick事件并打开图像全屏。因此,我想知道如何在onTouch(页面/视图交换)上设置优先级

(onTouch事件使用一个gestureListener,我使用的是onFling和flipper方法..)
(onClick只是一个imageView.setOnClickListener(new OnClickListener())

如果您从onFling(…)返回true,它将消耗事件并停止传播。

如果您需要更多信息,您可以找到将触摸从父视图委派到子视图的解决方案

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

太棒了!成功了!这也是一件显而易见的事情,我不会注意到的。非常感谢!