0

在我的應用程序中,我已經在ActionBar中啓用了下拉菜單。用戶有兩個元素可供選擇。根據不同的選擇,我希望ViewPager能夠顯示來自不同FragmentPagerAdapter的不同內容。用戶必須有能力隨時切換。在兩個ViewPager內容之間切換

我試着在聽衆中設置兩個不同的PagerAdapter,沒有運氣。尋呼機每次只會重新載入以前的碎片。類似的問題描述於herehere。但在我的方法中,我不想更改一個適配器的內容。我真的只想在兩個獨立的適配器之間切換。

這整個事情似乎真的讓我感到困惑。有沒有已知的解決方法,或者是否有替代解決方案來解決我的問題?

回答

1

如果您的應用程序可能,我會建議使用FragmentStatePagerAdapter而不是FragmentPagerAdapter。每個適配器應該能夠存儲單獨的片段列表,並且在切換到其他適配器時應該保留片段的保存狀態。

+0

太好了。將適配器的超類切換到FragmentStatePagerAdapter使其正常工作。非常感謝。 –

0

我試着在聽衆中設置兩個不同的PagerAdapter,沒有運氣。尋呼機每次只會重新載入以前的碎片。

我假設您使用的是FragmentPagerAdapterFragmentStatePagerAdapter。這兩個人都通過標籤名稱將其片段存儲在FragmentManager中,因此此切換方法將不起作用。

是否有任何已知的解決方法,或者是否有替代解決方案,我的問題?

一個辦法是到餐桌FragmentPagerAdapterFragmentStatePagerAdapter,更換makeFragmentName()方法使用替代標記語法,並使用修訂後的適配器類的兩個中的一個。

+0

我想你可能錯在'FragmentStatePagerAdapter'存儲片段的標籤名稱。相反,它只是將所有活動片段保存在一個'ArrayList'中。 – UgglyNoodle