Man*_*noz 13 android android-fragments android-viewpager2
我有一个 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]
}
Run Code Online (Sandbox Code Playgroud)
适配器项可以根据用户选择的日期进行更改,因此它需要是动态的。发生的情况是,在我调用adapter.items = {new_fragments}当前片段后没有重新加载,只有在我转到 ViewPager 中的最后一页并返回第一页后,我才能看到更新的片段。当前片段在notifyDataSetChanged被调用时不会更新。
我怎样才能更新当前显示的片段?
Man*_*noz 12
我不得不重写以下两种方法......
override fun getItemId(position: Int): Long {
return items[position].id
}
override fun containsItem(itemId: Long): Boolean = items.any { it.id == itemId }
Run Code Online (Sandbox Code Playgroud)
……让它发挥作用!
| 归档时间: |
|
| 查看次数: |
2446 次 |
| 最近记录: |