在扩展 Fragment 的 class 中使用 onInterceptTouchEvent

Using onInterceptTouchEvent in a class that extends Fragment

我有一个带有视图的片段,其中包含一些可点击的元素(ToggleButtons 和一个 GridView)。

我在视图上设置了一个 onTouchListener,我用它来检测简单的滑动手势,只要滑动不在任何可点击的项目上开始,它就可以很好地工作。我希望滑动无论从哪里开始都能正常工作。

我知道 ToggleButtons 和 GridView 可能正在消耗触摸事件,在扩展 ViewGroup 的 类 中,我可以在 Activity 的 sub类 中覆盖 onInterceptTouchEvent 或 dispatchTouchEvent。

有什么想法可以在扩展 Fragment 时处理这种情况吗?

我在这里找到的最接近的是:Android adding onInterceptTouchEvent to a fragment很遗憾,没有人回答这个问题。

感谢期待。

好的,终于到了。

我创建了一个 RelativeLayout 的子类,它是我布局的根,然后在其中重写 onInterceptTouchEvent.

public class RootLayout extends RelativeLayout {

    public RootLayout(Context context) {
        super(context);
    }

    public RootLayout(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public RootLayout(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }


    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev){
        return true;
    }
}

然后将我的 xml 中的 RelativeLayout 替换为新的子类。

<com.walker.leigh.dipswitch2.RootLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/root_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

感谢您的帮助:)