2012-05-23 57 views
11

我在應用程序中使用android.support.v4.view.ViewPager如何在使用ViewPager時處理savedInstanceState?

當用戶旋轉屏幕時,活動被破壞並重新創建。在ViewPager中當前有效的片段(通常是屏幕上的一個,左邊的一個和右邊的那個)全部存儲到savedInstanceState

創建一個新的活動,FragmentActivity.onCreate(savedInstanceState)被稱爲片段狀態,並且使用該包重新創建這三個片段。但是,我的onCreate也設置了ViewPagerViewPager適配器,它們重新創建它們自己的片段,從而導致這三個片段中的每一個片段都有兩個。

如何將自動重新創建的片段與我的ViewPager的適配器相關聯,而不是從頭重新創建它們?

回答

17

沒關係。看來我錯誤地使用了FragmentPagerAdapter

使用FragmentPagerAdapter的正確方法是在getItem()中實例化新片段。我在適配器的構造函數中實例化了所有片段,將它們存儲在數組中,然後在數組中查找它們並返回getItem()中的相應片段。

如果您從getItem()實例化您的片段,然後FragmentPagerAdapter.instantiateItem()將自動使用回收片段,而不是實例化一個新的。

+0

你是一個救星,謝謝。 – Simon

相關問題