首页 > 解决方案 > Recycler查看消失的项目

问题描述

我有以下问题。

Fragment使用RecyclerView-> 导航到下一个片段 -> 向后导航popBackStack()->RecyclerView不显示项目

它每隔一段时间发生一次(内部的适配器实例Fragment总是相同的)

适配器itemCount总是返回 > 0 但我检查过没有onCreateViewHolder/onBindViewHolder调用任何方法并且LayoutManager实例也存在

这种行为发生在三星 G7 上(不知道其他三星设备,但在 Nexus、小米、LG 上一切正常)

setHasFixedSize(true)

adapter.setupData(content)
rv_test.adapter = adapter

/*setupData method*/
items.clear()
items.addAll(data)
notifyItemRangeInserted(0, data.size)

 <androidx.coordinatorlayout.widget.CoordinatorLayout
    ...
    <androidx.recyclerview.widget.RecyclerView
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:overScrollMode="never"
                    android:clipToPadding="false"
                    android:focusableInTouchMode="true"
                    app:layout_behavior="@string/appbar_scrolling_view_behavior"
                  app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
                    app:spanCount="2"
                    android:scrollbars="none"/>
...
</androidx.coordinatorlayout.widget.CoordinatorLayout>

标签: androidandroid-recyclerview

解决方案


在 RecylerView 上实际设置适配器之前,您正在添加数据并通知更新。

改变:

adapter.setupData(content)
rv_test.adapter = adapter

至:

rv_test.adapter = adapter
adapter.setupData(content)

推荐阅读