我已經使用FragmentActivity
,ViewPagerAdapter
和Fragment
來構建標籤格式。我的FragmentActivity
中有3個選項卡。我很困惑,當FragmentActivity
方法被調用或者onCreateView方法被調用onClick
的選項卡時,是否所有Fragment
onCreateView
方法都被調用?我已經設置了3個斷點onCreateView
我所有的3 Fragments
的方法。在調試期間,我發現只有前2個onCreateView
方法被調用。請解釋爲什麼只有2個被調用?在android中使用FragmentActivity調用所有Fragment onCreateView方法嗎?
0
A
回答
1
ViewPagerAdapter將根據用戶需求來管理創建片段和銷燬片段。所以,如果你不設置mViewPager.setOffscreenPageLimit(NUM_TABS-1),默認爲1(可以參考here)
這就是爲什麼它僅僅創建第2個選項卡,當您選擇TAB3,那麼它會破壞tab1的片段並創建tab3的片段。你的情況,如果你設置mViewPager.setOffscreenPageLimit(2)當你調試時,你會看到它調用3 onCreateView方法,並不會銷燬任何片段的視圖。希望這個幫助。
0
根據用戶需求創建和銷燬它們。如果你滾動到第二個片段,你會看到它被創建。這只是一個優化。你認爲一個例如8個片段的應用程序需要將這8個片段保存在內存中嗎?這會浪費資源。
+0
雅我明白了。但是默認行爲是什麼。我的第一個2個片段是在開始時創建的,但不是第3個。當我點擊第二個選項卡時,它調用第三個片段。這就是爲什麼我感到困惑。 – ray 2013-03-12 02:26:19
相關問題
- 1. Android Fragment Oncreateview Loadanimation
- 2. 爲什麼我不能在fragment的onCreateView中調用方法?
- 3. 未調用Android Fragment方法?
- 4. FragmentActivity onCreateView
- 5. onCreateView()的調用方法
- 6. 在帶有標籤的onCreateView()中使用Google Map Fragment
- 7. Fragment vs. FragmentActivity
- 8. 是onCreateView()Fragment類的構造函數嗎?
- 9. 調用一個方法在Android的所有活動中使用
- 10. 在Fragment中調用initLoader時?
- 11. show。(getFragmentManager)with Fragment not FragmentActivity
- 12. 如何在Android中使用Fragment中的按鈕調用頁面?
- 13. 爲什麼當我從FragmentActivity調用Fragment的方法時ProgressBar變爲空?
- 14. 無法從導航抽屜中的Fragment/FragmentActivity打開FragmentActivity
- 15. 從UI線程運行的Fragment中調用Activity方法嗎?
- 16. ViewPager NullPointerException修改Fragment中的FragmentActivity
- 17. 如何從Android中的Activity調用Fragment中的方法?
- 18. Fragment數據解析在FragmentActivity TabListener
- 19. 在父Activity中調用Fragment接口方法onBackPressed方法
- 20. 片段onCreateView方法TabLayout不調用ViewPagerAdapter
- 21. Android onCreateView未被調用
- 22. 來自FragmentActivity的Fragment中的Grid.Invalidate
- 23. 用戶界面元素是否在Fragment或FragmentActivity中啓動?
- 24. 如何在Android中將Fragment中的整數值傳遞給FragmentActivity?
- 25. 如何從Activity/Fragment調用ViewHolder方法
- 26. 如何從ViewPager調用Fragment方法?
- 27. setListAdapter不能在Android中使用Sherlock Fragment
- 28. 在FragmentActivity中使用findPreference
- 29. 在Android中使用Fragment時發生ClassCastException
- 30. Android AsyncLoader:在fragmentactivity/fragment之間共享對象
@MichaelIP你是對的。謝啦。 – ray 2013-03-12 02:58:33