我使用 ViewPager2
和 FragmentStateAdapter
创建片段集合。我想根据它在适配器中的位置访问特定片段。我怎样才能达到同样的目标?
答案 0 :(得分:1)
您可以使用片段管理器的 findFragmentByTag("f$id")
但是要做到这一点,您需要覆盖 getItemId()
中的 FragmentStateAdapter
以返回位置,以便 ID 现在等于位置。
override fun getItemId(position: Int): Long {
return position.toLong()
}
然后在某个位置获取片段:
ViewPager2
由活动托管,请使用 supportFragmentManager
: fun getPageFragment(id: Long): Fragment? {
return supportFragmentManager.findFragmentByTag("f$id")
}
childFragmentManager
: fun getPageFragment(id: Long): Fragment? {
return childFragmentManager.findFragmentByTag("f$id")
}