3

2つのビューページャーでスクロールを同期する必要があります。

ここにいくつかの関連するコードがあります:

super.onTouchEvent(ev);
    switch (ev.getAction()) {
    case MotionEvent.ACTION_DOWN:
        mViewPager.beginFakeDrag();
        return true;
    case MotionEvent.ACTION_MOVE:
        mViewPager.fakeDragBy(mViewPager.getScrollX()-getScrollX());
        return true;

    case MotionEvent.ACTION_UP:
    case MotionEvent.ACTION_CANCEL:
        mViewPager.endFakeDrag();
        return true;
    default:
        break;
    }
    return mViewPager.onTouchEvent(ev);

タッチイベントが発生し、2番目のビューを同じ量だけスクロールします。しかし、私が管理できないことの1つは、フリングを無効にするか、同様に処理することです。つまり、スクロールを自動的に次のページにジャンプさせる短い高速gestrueを意味します。

構造は-ViewPagerNavigator--ViewPagerMenu-です

メニューページャーで機能するようにフリングを作成するにはどうすればよいですか、または単に無効にするのですか?

4

2 に答える 2

1

以前のコメントによると:

違いが出るかどうかはわかりませんが、ViewPager.OnPageChangeListenerインターフェースをいじってみましたか?タッチイベントを直接キャプチャする代わりに、onPageScrolled(...)メソッドと渡されたオフセットを使用できると思います。フリングの場合は、で逃げることができるかもしれませんonPageSelected(...)

于 2012-04-27T10:30:35.967 に答える
0

ここで私の答えをチェックできます

OnPageChangeListenerを使用して2つのViewPagerを同期する

これらに異なるPageTransformerを設定することもできます。

于 2014-06-08T09:29:03.840 に答える