我有 ScrollViews 作为 ViewPager 的页面。我想完全禁用该 ViewPager 的触摸事件。当我在 ViewPager 类上覆盖 onTouchEvent 时,我只能阻止水平滚动,但不能阻止子 ScrollView 的滚动。
如何完全禁用 ViewPager 和其中的所有 ScrollViews 的触摸事件?
这对我来说只是一个概念证明。下一步是防止仅对该 ViewPager 的某些部分进行滚动。
我有 ScrollViews 作为 ViewPager 的页面。我想完全禁用该 ViewPager 的触摸事件。当我在 ViewPager 类上覆盖 onTouchEvent 时,我只能阻止水平滚动,但不能阻止子 ScrollView 的滚动。
如何完全禁用 ViewPager 和其中的所有 ScrollViews 的触摸事件?
这对我来说只是一个概念证明。下一步是防止仅对该 ViewPager 的某些部分进行滚动。
覆盖滚动视图的 onInterceptTouchEvent 以使用或忽略事件:
“返回 true 以从孩子那里窃取运动事件,并通过 onTouchEvent() 将它们分派到此 ViewGroup。当前目标将收到一个 ACTION_CANCEL 事件,并且不会在此处传递更多消息。”
public class InterceptScrollView extends ScrollView {
public InterceptScrollView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
return false;
}
}