我有一个带有视图的片段,其中包含一些可单击的元素(ToggleButtons和一个GridView)。
我已经在View上设置了一个onTouchListener,用于检测简单的滑动手势,只要滑动没有在任何可单击项上开始,此方法就可以很好地工作。我希望无论从哪里开始滑动都可以。
我知道ToggleButtons和GridView可能正在消耗touch事件,在扩展ViewGroup的类中,我可以在Activity的子类中重写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">
谢谢你的帮助 :)