67

カスタム のトランジションのすべてのアニメーションを無効にしたいと思いますViewPager。このビュー ページャーには 4 つのタブが含まれており、各タブには 1 つのタブが読み込まれますFragment。ビュー ページャーが行うことは、タブを切り替えることです。たとえば、最初のタブはインデックス、2 番目のタブはマップなどです。

ViewPager問題は、最初に選択したタブで 4 番目のタブをクリックした場合、2 番目と 3 番目のタブを通過して 4 番目のタブで停止する様子を確認できることです。

ユーザーが表示する新しいタブを選択するたびViewPagerに to を使用しようとして、すべてのアニメーションを無効にしようとしましたが、それでも機能しません。setAnimationnull

これを達成するためのアイデアはありますか?よろしくお願いします!

onCreateAnimation編集:私もそれぞれをオーバーライドしようとしましFragmentたが、まだ機能していません

4

4 に答える 4

178

私は最終的に発見しました:この問題は、 のスムーズなスクロールである にmViewPager.setCurrentItem(position)追加のパラメータを付けて を呼び出すだけで解決できます。この後、スクロールはスムージングなしで行われるため、アニメーションは表示されません。falseViewPager

于 2013-02-04T11:11:11.990 に答える
52

別の解決策は次のとおりです。

  • ViewPagerのサブクラス化(カスタムViewPager )
  • 2 つのsetCurrentItemメソッドをオーバーライドする

コードスニペット:

@Override
public void setCurrentItem(int item, boolean smoothScroll) {
    super.setCurrentItem(item, false);
}

@Override
public void setCurrentItem(int item) {
    super.setCurrentItem(item, false);
}

SmoothScrollfalseに設定すると、スクロール アニメーションが無効になります。

于 2016-02-16T22:38:34.680 に答える