0

ViewPager のページとして ScrollViews があります。その ViewPager のタッチ イベントを完全に無効にしたいと思います。ViewPager クラスで onTouchEvent をオーバーライドすると、水平スクロールのみを防止できますが、子 ScrollView のスクロールは防止できません。

ViewPager とその中のすべての ScrollView のタッチ イベントを完全に無効にするにはどうすればよいですか?

これは私にとって概念実証にすぎません。次のステップは、その ViewPager の一部のみのスクロールを防止することです。

4

1 に答える 1

1

scrollview の onInterceptTouchEvent を上書きして、イベントを消費または無視します。

「子からモーション イベントを盗み、onTouchEvent() を介してこの ViewGroup にディスパッチするには、true を返します。現在のターゲットは 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 に答える