作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 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 。
notifyDataSetChanged
时不更新叫做。
最佳答案
我不得不覆盖以下两种方法......
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/
我有一个 FragmentStateAdapter 作为 ViewPager2 的适配器。 class DefaultFragmentStateAdapter(fragment: Fragment)
我是一名优秀的程序员,十分优秀!