まず、FragmentStatePagerAdapterを使用して、表示するフラグメントをViewPagerに供給しています。setAdapterが呼び出されたときにViewPagerが常に更新されるとは限りません.FragmentStatePagerAdapter
アプリが実行中の場合(つまりonResume()
以降)、ViewPagerでsetAdapterを呼び出すと、常にViewPagerが更新され、アダプタのgetItem(int position)
メソッドが呼び出されます。
オリエンテーションを変更した後、私の活動のonCreate(Bundle savedInstance)
メソッドでsetAdapterを呼び出すと、getItem(int position)
メソッドが呼び出されず、古いフラグメントが再利用されます。
私がFragmentManagerが私が理解していないことをしているのかもしれないと思っていますか?方向変更中に破棄されないのは、フラグメントマネージャだけです。
おかげ
問題はSavedStateです。私は同じ問題を抱えていますが、解決策はありません。次のように試すことができます:アダプタコールアダプタを設定します。saveStateを使用して、アダプタを設定して、restoreSavedStateを保存された状態で呼び出します。私の場合、それは助けにはならなかったが、おそらくあなたのために。理由:ViewPagerのsetAdapterで、現在の状態を保存して再利用しました。 (私は思う) – Informatic0re
ここで正解を見つける:http://stackoverflow.com/questions/13910826/viewpager-fragmentstatepageradapter-orientation-change – Informatic0re
これはメモリリークの原因ですか?多くの人がそれを言っている。このシナリオをどのように扱うのか他の解決策はありますか? – pradyumnad