将触摸事件从自定义 View 转发到 ViewPager
Forward touch events from custom View to ViewPager
假设我有一个占屏幕高度 50% 的 ViewPager 和一个占屏幕另一半的简单视图(或其他组件)。当我在 View 组件上滑动时,我希望我的交互在 ViewPager 上可见,就像我在 ViewPager 上滑动一样。
有什么想法可以实现吗?我试过在 View 中覆盖 onTouchEvent,然后在 ViewPager 中触发 onTouchEvent,但这似乎没有用。
我自己找到了解决方案。操作方法如下:
1) 为您的视图创建自定义 Class,它是 ViewGroup 的实例并覆盖 onInterceptTouchEvent()。确保此 ViewGroup 的子级 return true onTouchEvent().
这里有更多解释:onInterceptTouchEvent only gets ACTION_DOWN
2) 在 onInterceptTouchEvent(MotionEvent ev) 中,您必须通过调用 viewPager.dispatchTouchEvent(ev)
将事件转发给 viewPager
您可以在 ViewPager 中使用特殊方法 class:
假设我有一个占屏幕高度 50% 的 ViewPager 和一个占屏幕另一半的简单视图(或其他组件)。当我在 View 组件上滑动时,我希望我的交互在 ViewPager 上可见,就像我在 ViewPager 上滑动一样。
有什么想法可以实现吗?我试过在 View 中覆盖 onTouchEvent,然后在 ViewPager 中触发 onTouchEvent,但这似乎没有用。
我自己找到了解决方案。操作方法如下:
1) 为您的视图创建自定义 Class,它是 ViewGroup 的实例并覆盖 onInterceptTouchEvent()。确保此 ViewGroup 的子级 return true onTouchEvent().
这里有更多解释:onInterceptTouchEvent only gets ACTION_DOWN
2) 在 onInterceptTouchEvent(MotionEvent ev) 中,您必须通过调用 viewPager.dispatchTouchEvent(ev)
将事件转发给 viewPager您可以在 ViewPager 中使用特殊方法 class: