Pet*_*r F 5 android android-fragments fragmentstatepageradapter androidx android-fragmentfactory
我喜欢 的方法FragmentFactory,它可以将依赖项传递给构造函数中的片段。
我想将自定义FragmentFactory与FragmentStatePagerAdapter.
我在活动中托管视图寻呼机。我可以创建一个自定义片段工厂并将其分配给使用的活动
supportFragmentManager.fragmentFactory = CustomFragmentFactory()
Run Code Online (Sandbox Code Playgroud)
然后我可以用它supportFragmentManager来初始化我的FragmentStatePagerAdapter. 到目前为止还好。
我的问题是视图寻呼机中的片段显示依赖于位置的数据。
假设我有一个列表items和ItemFragment,它显示在显示 的视图寻呼机中items[position],因此有一个如下的构造函数:
class ItemFragment(val item: Item) : Fragment()
Run Code Online (Sandbox Code Playgroud)
我必须如何实现CustomFragmentFactoryandFragmentStatePagerAdapter的getItem(position: Int)函数才能实现与此等效的安全功能:
override fun getItem(position: Int) = ItemFragment(items[position])
Run Code Online (Sandbox Code Playgroud)
FragmentFactory不提供传递动态数据的方法。因此,FragmentFactory在这种情况下不起作用。
如果您有动态参数,则必须使用捆绑包以经典方式传递它们(或使用像 Safe Args 这样的方法,它使用捆绑包生成代码)。
\n本文讨论了完全相同的场景:
\n\n\n使用 FragmentFactory 的限制是我们不能\xe2\x80\x99t 向它传递动态参数。
\n假设我们有一个 ViewPager,它显示同一个 mainFragment 的两个实例,但具有不同的 textToDisplay 值,那么使用fragmentFactory 实现就不可能实现这一点。
\n
| 归档时间: |
|
| 查看次数: |
1014 次 |
| 最近记录: |