我有一个包含一些可点击元素的视图片段(ToggleButtons和一个GridView)。
我在View上设置了一个onTouchListener,用于检测简单的滑动手势,只要滑动不在任何可点击的项目上启动,这就非常有效。无论它从哪里开始,我都希望滑动工作。
据我所知,ToggleButtons和GridView可能正在使用触摸事件,在扩展ViewGroup的类中,我可以在Activity的子类中覆盖onInterceptTouchEvent或dispatchTouchEvent。
在扩展Fragment时我是如何处理这种情况的?
我在这里找到的最接近的是:Android adding onInterceptTouchEvent to a fragment很遗憾,此问题没有回复。
感谢您的期待。
答案 0 :(得分: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">
感谢您的帮助:)