FragmentStateAdapter的三个构造函数

阅读 2

FragmentStateAdapter实际上有三个构造函数:

  • FragmentStateAdapter(FragmentActivity)-使用活动的getSupportFragmentManager()和活动的getLifecycle()。如果您的ViewPager2是直接托管在活动中的,那么您将使用这个方法
  • FragmentStateAdapter(Fragment)-使用片段的getChildFragmentManager()和片段的getLifecycle()。如果您的ViewPager2托管在另一个片段中,那么您将使用这个方法
  • FragmentStateAdapter(FragmentManager, Lifecycle)-这是其他两个构造函数在内部调用的。你永远不会使用这个,除非你在一个没有FragmentActivity的服务中添加片段。

在片段中托管ViewPager2时,必须始终使用Fragment(或者使用getChildFragmentManager()+getLifecycle(),如果您想为相同的效果编写更多的代码)这样可以确保FragmentStateAdapter创建的片段在配置更改或进程死亡或重新创建后正确地恢复其状态—这只是当它们是包含您的ViewPager2的片段的子片段时,就有可能。

各位看官,如果你觉得本文不错,请支持一下~