我正在将 ViewPager2 与 FragmentStateAdapter 一起使用,并且正在调用 notificationItemChanged(position)。但正如预期的那样,createFragment 方法不会再次调用。这是预期的行为还是错误,我应该做什么
我的代码是
class EEditionPagerAdapter(
fragmentManager: FragmentManager, lifecycle: Lifecycle, private var date: String
) : FragmentStateAdapter(fragmentManager, lifecycle) {
private var menuList = emptyList<EEditionMenu>()
override fun getItemCount(): Int = menuList.size
override fun createFragment(position: Int): Fragment {
val menu = menuList[position]
return EEditionListingFragment.newInstance(menu, date)
}
fun submitList(list: List<EEditionMenu>) {
menuList = list
notifyItemRangeChanged(0, menuList.size)
}
fun changeDate(date: String, position: Int){
this.date = date
notifyItemChanged(position)
}
}
FragmentStateAdapter 使用项 ID 来确定片段是否已创建并重用已创建的片段。默认情况下,项目 ID 是项目的位置。您可以覆盖getItemId
and containsItem
根据位置和日期提供您自己的唯一 ID,那么当日期更改时,它将要求新的片段。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)