gpt4 book ai didi

android - 在 notifyDataSetChanged 之后 FragmentStateAdapter 没有重新创建 currentFragment

转载 作者:行者123 更新时间:2023-12-03 17:06:13 25 4
gpt4 key购买 nike

我有一个 FragmentStateAdapter 作为 ViewPager2 的适配器。

class DefaultFragmentStateAdapter(fragment: Fragment) : FragmentStateAdapter(fragment) {

var items = listOf<Fragment>()
set(value) {
field = value
notifyDateSetChanged()
}

override fun getItemCount(): Int = items.size

override fun createFragment(position: Int): Fragment = items[position]
}

适配器项可以根据用户选择的日期而改变,因此它需要是动态的。
在我调用 adapter.items = {new_fragments} 之后会发生什么当前 fragment 没有重新加载,只有在我转到 ViewPager 中的最后一个页面并返回第一页后,我才能看到更新的 fragment 。
当前 fragment 在 notifyDataSetChanged 时不更新叫做。

如何管理更新当前显示的 fragment ?

最佳答案

我不得不覆盖以下两种方法......

override fun getItemId(position: Int): Long {
return items[position].id
}

override fun containsItem(itemId: Long): Boolean = items.any { it.id == itemId }
……让它发挥作用!

关于android - 在 notifyDataSetChanged 之后 FragmentStateAdapter 没有重新创建 currentFragment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60959705/

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