Android嵌套触摸处理

时间:2016-05-23 08:08:49

标签: android android-viewpager touch swipe

我在自定义寻呼机中有一个ViewPager。两者都在水平方向上滑动。据我了解Android触摸模型,我的自定义分页器应该监视通过onInterceptTouchEvent的触摸事件,检查滑动手势并在检测到一个时拦截,还要尊重requestDisallowInterceptTouchEvent,这样如果子视图应该使用相同的水平滑动手势我的自定义视图正在监视它是否被允许。

到目前为止,我的自定义寻呼机处理水平滑动非常适合非滚动或垂直滚动​​子视图以及水平滚动子视图,尊重disallow请求,因此子视图可以使用水平手势。

但是,如果水平滚动的子视图已到达其内容的末尾,因此它不能再滚动,我希望它可以取消它的disallow请求,以便父级可以拦截并使用该动作,但是通过source(https://android.googlesource.com/platform/frameworks/support/+/refs/heads/master/v4/java/android/support/v4/view/ViewPager.javahttps://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/core/java/android/widget/ScrollView.java),我看不到它曾经用false参数调用requestDisallowInterceptTouchEvent,这意味着一旦它将手势识别为滑动,它将消耗它,无论它是否可以实际使用是不是。

我对Android的触控处理系统的理解是否有缺陷,或者是标准视图类'在这方面触摸处理太粗糙?

这是一个提高我对Android触控处理模式的理解的问题,因此我可以更好地使用系统,而不是请求解决方案建议(尽管答案是权威的& #34;系统不允许这样做",对于那些遇到类似问题并在搜索时发现这个问题的人,可能会欢迎好的解决方法)

0 个答案:

没有答案