0

FragmentActivityViewPagerAdapterおよびを使用Fragmentしてタブ形式を作成しました。私のには3つのタブがありますFragmentActivityFragment onCreateViewメソッドが呼び出されているときにすべてのメソッドが呼び出されているのか、タブからFragmentActivityonCreateViewメソッドが呼び出されているのか混乱していますか?onClick3つすべてのブレークポイントonCreateViewメソッドを3つ設定しFragmentsました。デバッグ中に、最初の2つのonCreateViewメソッドのみが呼び出されていることがわかりました。なぜ2つしか呼び出されないのか説明してください。

4

2 に答える 2

1

ViewPagerAdapterは、ユーザーのニーズに基づいてフラグメントの作成とフラグメントの破棄を管理します。したがって、mViewPager.setOffscreenPageLimit(NUM_TABS-1)を設定しない場合、デフォルトは1です(ここで参照できます) 。

そのため、最初の2つのタブのみが作成され、tab3を選択すると、tab1のフラグメントが破棄され、tab3のフラグメントが作成されます。この場合、デバッグ時にmViewPager.setOffscreenPageLimit(2)を設定すると、3つのonCreateViewメソッドが呼び出され、フラグメントのビューが破棄されないことがわかります。この助けを願っています。

于 2013-03-12T02:25:36.990 に答える
0

それらは、ユーザーのニーズに基づいて作成および破棄されます。スクロールして2番目のフラグメントに到達すると、それが作成されていることがわかります。これは単なる最適化です。たとえば8つのフラグメントを持つアプリケーションは、8つのフラグメントをメモリに保持する必要があると思いますか?それは資源の浪費になります。

于 2013-03-12T02:07:29.197 に答える