在扩展 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">
感谢您的帮助:)
我有一个带有视图的片段,其中包含一些可点击的元素(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">
感谢您的帮助:)