在我的应用中,我在ActionBar中启用了下拉列表。用户有两个要素可供选择。根据选择,我希望ViewPager显示来自不同FragmentPagerAdapters的不同内容。用户必须能够一直切换。
我试图在听众中设置两个不同的PagerAdapter而没有运气。寻呼机每次都会重新加载以前的片段。 here和here描述了类似的问题。但是在我的方法中,我不想改变一个适配器的内容。我真的只想在两个独立的适配器之间切换。
这一切似乎让我很困惑。是否有任何已知的解决方法或是否有替代解决方案?
答案 0 :(得分:1)
如果您的应用可以使用,我建议您使用FragmentStatePagerAdapter
代替FragmentPagerAdapter
。每个适配器应该能够存储单独的片段列表,并且在切换到另一个适配器时应该保留片段的保存状态。
答案 1 :(得分:0)
我试图在听众中设置两个不同的PagerAdapter而没有运气。寻呼机每次都会重新加载以前的片段。
我假设您使用的是FragmentPagerAdapter
或FragmentStatePagerAdapter
。这两个都按照FragmentManager
中的标记名称存储它们的片段,因此这种切换方法不起作用。
是否有任何已知的解决方法或是否有替代方案解决我的问题?
一种方法是fork FragmentPagerAdapter
或FragmentStatePagerAdapter
,替换makeFragmentName()
方法以使用替代标记语法,并将修改后的适配器类用于您的两个。