0

我有 ScrollViews 作为 ViewPager 的页面。我想完全禁用该 ViewPager 的触摸事件。当我在 ViewPager 类上覆盖 onTouchEvent 时,我只能阻止水平滚动,但不能阻止子 ScrollView 的滚动。

如何完全禁用 ViewPager 和其中的所有 ScrollViews 的触摸事件?

这对我来说只是一个概念证明。下一步是防止仅对该 ViewPager 的某些部分进行滚动。

4

1 回答 1

1

覆盖滚动视图的 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;
}

}
于 2013-05-30T09:03:15.013 回答