android - 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>
解决方案
在 RecylerView 上实际设置适配器之前,您正在添加数据并通知更新。
改变:
adapter.setupData(content)
rv_test.adapter = adapter
至:
rv_test.adapter = adapter
adapter.setupData(content)
推荐阅读
- javascript - 如何同步getjson函数
- javascript - 使用 webview 在 android 中下载不同格式的 facebook 视频
- javascript - 链接事件侦听器返回子元素
- angular - 如果我包含 router-outlet 指令,我将无法在 DOM 中看到一个组件。没有错误信息
- php - 如何在codeigniter中使用phpunit测试我的登录页面?
- django - Django Datetime 没有被保存
- java - 如何自动(在键入时)扩展和缩小 EditTexts 的列以显示所有符号?
- python - 网球路线的 3D 模拟
- mysql - 如何从 MySQL DB 中的对象数组中获取和显示特定值?
- java - java中的dhtmlx grid.render_table不起作用