2012-02-04 111 views
1

我正在看一些演示代碼,演示如何使用片段適配器(在這種情況下選項卡適配器)。我很好奇instantiate()方法的作用。我看到它在下面的演示代碼中使用此頁上:如何使用Android碎片?

http://developer.android.com/reference/android/support/v4/view/ViewPager.html

(見getItem()方法TabsAdapter類中)

如果我正確地讀演示代碼,每一個用戶時間點擊其中一個標籤,會創建一個新的片段?因此片段又開始了整個生命週期(onAttach() ... onCreate() ...等)?這聽起來非常低效。我認爲代表每個選項卡內容的片段應僅實例化一次(可能在addTab()方法中),然後將其保存到某個集合中,以便在調用getItem()時獲取該集合。

如果我誤解了這些,請糾正我。我試圖更好地理解如何管理片段。

回答

0

我的錢會被setCurrentItem()函數實際上不會銷燬該選項卡中顯示的現有片段。否則,適配器具有可用選項卡列表的真正原因並不多。很可能,當你從一個標籤頁切換到另一個標籤頁時,setCurrentItem()只是將UI從當前活動的Fragment中分離出來(或者調用它的onPause()方法),然後重新附加新選擇的Fragment的UI(或者調用它的onResume( ) 方法)。

但是,如果你有疑問的時候,你可以閱讀源代碼:)

希望它能幫助, 大衛