【发布时间】:2020-09-15 12:57:41
【问题描述】:
我喜欢FragmentFactory 的方法,它可以将依赖项传递给构造函数中的片段。
我想同时使用自定义 FragmentFactory 和 FragmentStatePagerAdapter。
我在活动中托管视图寻呼机。我可以创建一个自定义片段工厂并将其分配给活动使用
supportFragmentManager.fragmentFactory = CustomFragmentFactory()
然后我可以使用supportFragmentManager 来初始化我的FragmentStatePagerAdapter。
到目前为止还不错。
我的问题是视图寻呼机中的片段显示的数据取决于位置。
假设我有一个列表items 和ItemFragment,它显示在显示items[position] 的视图寻呼机中,因此有一个这样的构造函数:
class ItemFragment(val item: Item) : Fragment()
我必须如何实现CustomFragmentFactory 和FragmentStatePagerAdapter 的getItem(position: Int) 函数才能实现安全等效:
override fun getItem(position: Int) = ItemFragment(items[position])
【问题讨论】:
-
您找到解决方案了吗?我面临同样的问题..
-
不幸的是,没有。我根本没有使用
FragmentFactory方法,而是坚持使用使用Bundle传递参数的空构造函数片段的传统方法。
标签: android android-fragments androidx fragmentstatepageradapter android-fragmentfactory