3

ViewPager動的な番号が含まれてimagesいます。これViewPagerは、カスタム行としてテーブルビューに追加されます。このテーブルビューには複数の動的カスタム行を含めることができるscrollviewため、スクロール用にこのテーブルビューをに追加する必要があります。

さて、私の質問は、View Pagerまで水平方向にスクロールしているとき、それは正確には水平方向のスクロールではなく、いくつかの垂直方向のスクロールと混合されているということです。したがって、垂直スクロールが検出されると、イベントはスクロールビューに渡されます。これにより、ViewPager初期位置にリセットされます。

では、どうすればイベントを渡すViewPagerか、scrollviewが垂直スクロールイベントをキャッチしないようにすることができますか?

注:垂直スクロールを無効にしようとしscrollviewましたが、垂直スクロールイベントのキャプチャが停止しませんでした。

4

1 に答える 1

11

私は私の質問の解決策を見つけました、そしてこれは私がそれをした方法です。

私は次のようにViewpagerのオンタッチイベントを乗り越えます

myViewPager.setOnTouchListener(new OnTouchListener() {

                public boolean onTouch(View v, MotionEvent event) {

                    if(event.getAction() == MotionEvent.ACTION_MOVE && myScrollView!=null){
                        myScrollView.requestDisallowInterceptTouchEvent(true);
                    }
                    return false;
                }
            });

注:私の質問で述べたように、myScrollViewはmyViewPagerの親です。

于 2012-09-11T11:13:12.680 に答える