Android 使用scrollview在viewpager中使用触摸事件

Android 使用scrollview在viewpager中使用触摸事件,android,android-viewpager,swipe,touch-event,Android,Android Viewpager,Swipe,Touch Event,我有一个viewpager,每个页面都有一个scrollview。我想能够做到垂直滚动,也改变了水平页面,而无需提高手指。问题是,如果我开始垂直移动手指,scrollview会获取触摸事件,但如果我开始水平移动手指,事件仍会被scrollview消耗。所以我必须抬起手指,开始一个新的水平姿势 我想通过创建自定义的滚动视图来更改此行为。如果我重写onTouchEvent(),我可以检测事件的方向。所以我做了一些类似的事情: public boolean onTouchEvent(){ if(

我有一个
viewpager
,每个页面都有一个
scrollview
。我想能够做到垂直滚动,也改变了水平页面,而无需提高手指。问题是,如果我开始垂直移动手指,
scrollview
会获取触摸事件,但如果我开始水平移动手指,事件仍会被
scrollview
消耗。所以我必须抬起手指,开始一个新的水平姿势

我想通过创建自定义的
滚动视图
来更改此行为。如果我重写onTouchEvent(),我可以检测事件的方向。所以我做了一些类似的事情:

public boolean onTouchEvent(){
   if(isVertical()){
        return true;
   }
   return false;
}

我的问题是,当我返回false时,
scrollview
停止滚动,但触摸事件不会传递到
viewpager
,因此我无法滑动到下一页或上一页

如果在返回false时调用
pager.requestFocus()
将当前焦点更改为viewpager,则可能会有所帮助。添加requestFocus无效:(如果在返回false时调用
pager.requestFocus()
将当前焦点更改为viewpager,则可能会有所帮助。添加requestFocus无效:(