android - 给onTouch优先于onClick

时间:2011-07-12 13:17:18

标签: android view onclick touch swipe

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

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

2 个答案:

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