FragmentActivity
、ViewPagerAdapter
およびを使用Fragment
してタブ形式を作成しました。私のには3つのタブがありますFragmentActivity
。Fragment
onCreateView
メソッドが呼び出されているときにすべてのメソッドが呼び出されているのか、タブからFragmentActivity
onCreateViewメソッドが呼び出されているのか混乱していますか?onClick
3つすべてのブレークポイントonCreateView
メソッドを3つ設定しFragments
ました。デバッグ中に、最初の2つのonCreateView
メソッドのみが呼び出されていることがわかりました。なぜ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 に答える