我的设置如下:
ViewPager2
实例使用... FragmentStateAdapter
作为适配器。getSupportFragmentManager
已传递给FragmentStateAdapter
的构造函数。任务
在某些情况下,我希望“从头开始”而不是从其savedInstanceState
重新创建片段。换句话说,我想告诉ViewPager2
/ FragmentStateAdapter
/ FragmentManger
不要将savedInstanceState
捆绑包向下传递到Fragment.onCreate(Bundle)
。
问题
是否有某种方法可以使缓存“无效”或ViewPager2
/ FragmentStateAdapter
/ FragmentManager
中的任何内容,这样我就可以控制Fragment应该何时“无效”(何时应该将Fragment设为“无效”)。是从头开始创建的,而不是从savedInstanceState
创建的?)
可能的解决方案(不足以满足我的需求)
我知道有FragmentStateAdapter.getItemId(int)
和FragmentStateAdapter.containsItem(long)
可用于控制片段的实例化。但是,此解决方案要求对(在我的情况中为数百个)ID进行适当的管理,并在每次重新创建碎片时以某种方式更新/修改它们。
真的没有办法使某种全局缓存无效吗?