1

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

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

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

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

我在这里找到的最接近的是:Android 将 onInterceptTouchEvent 添加到片段不幸的是,这个问题没有得到答复。

感谢期待。

4

1 回答 1

1

好吧,终于到了。

我创建了一个子类,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">

谢谢你的帮助 :)

于 2015-05-19T12:27:31.717 回答