12

アプリケーションで使用android.support.v4.view.ViewPagerしています。

ユーザーが画面を回転すると、アクティビティが破棄されて再作成されます。現在アクティブになっているフラグメントViewPager(通常、画面上のフラグメント、画面の左側にあるフラグメント、および右側にあるフラグメント)は、すべてに保存されますsavedInstanceState

新しいアクティビティが作成され、FragmentActivity.onCreate(savedInstanceState)フラグメント状態で呼び出され、バンドルを使用してこれら3つのフラグメントが再作成されます。ただし、アダプタonCreateも設定します。これにより、独自のフラグメントが新たに作成されるため、これら3つのフラグメントのそれぞれに2つが作成されます。ViewPagerViewPager

ViewPager自動的に再作成されたフラグメントを最初から再作成するのではなく、アダプターに関連付けるにはどうすればよいですか?

4

1 に答える 1

18

どうでも。FragmentPagerAdapter間違って使っていたようです。

正しい使用方法FragmentPagerAdapterは、で新しいフラグメントをインスタンス化することですgetItem()。代わりに、アダプターのコンストラクターですべてのフラグメントをインスタンス化し、それらを配列に格納してから、それらを配列で検索し、適切なフラグメントをで返していましたgetItem()

からフラグメントをインスタンス化すると、新しいフラグメントをインスタンス化する代わりにgetItem()FragmentPagerAdapter.instantiateItem()リサイクルフラグメントが自動的に使用されます。

于 2012-05-24T00:40:21.263 に答える