Scope
有一个包含两个片段的viewpager。其中一个片段有一个布局,用于监听 X 轴上的 onTouch 变化。
Problem
当沿 X 轴触摸和滑动时,布局几乎不会获取所有 Action.Move 事件。
看来 viewpager 有一个 onInterceptTouchEvent 返回 true 。
Question
是否真的可以覆盖 viewpager 的行为以使其和我的布局一起工作?因此,完美的情况是布局拦截其上的所有 onTouch 事件,而 viewpager 管理其余的 onTouch 事件。谢谢!
你是对的,我相信每个滚动容器都会拦截触摸事件,但你可以阻止它。您可以在布局上放置一个触摸监听器:
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_MOVE:
pager.requestDisallowInterceptTouchEvent(true);
break;
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_CANCEL:
pager.requestDisallowInterceptTouchEvent(false);
break;
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)