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无效:(