gpt4 book ai didi

android - ViewPager2 notifyItemChanged 的​​ FragmentStateAdapter 未按预期工作

转载 作者:行者123 更新时间:2023-12-03 16:02:54 28 4
gpt4 key购买 nike

我正在将 ViewPager2 与 FragmentStateAdapter 一起使用,并且我正在调用 notifyItemChanged(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 来确定是否已创建 fragment 并重用已创建的 fragment 。默认情况下,项目 ID 是项目的位置。您可以覆盖 getItemIdcontainsItem根据位置和日期提供您自己的唯一 ID,然后它会在日期更改时要求新的 fragment 。

关于android - ViewPager2 notifyItemChanged 的​​ FragmentStateAdapter 未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60408236/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com