android - RecyclerView 偶尔显示“死”项
问题描述
我有一个这样的 RecyclerView 设置:
<androidx.recyclerview.widget.RecyclerView
android:scrollbars="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbarThumbVertical="@android:color/transparent"
app:fastScrollEnabled="true"
app:fastScrollHorizontalThumbDrawable="@drawable/thumb_drawable"
app:fastScrollHorizontalTrackDrawable="@drawable/line_drawable"
app:fastScrollVerticalThumbDrawable="@drawable/thumb_drawable"
app:fastScrollVerticalTrackDrawable="@drawable/line_drawable"/>
// Linear layout manager
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getContext());
recyclerView.setLayoutManager(layoutManager);
// Touch helper for scrolling
ItemTouchHelper touchHelper = new ItemTouchHelper(touchHelperCallback);
touchHelper.attachToRecyclerView(recyclerView);
// Simple adapter
MyAdapter adapter = new MyAdapter(myDataset);
recyclerView.setAdapter(adapter);
每个项目都有一个圆圈,如果长按该圆圈,则会更改可视化以仅允许选择其他项目。
偶尔,这就是为什么我不明白出了什么问题,长时间按下的项目会得到一个重叠的重复“死”项目,而没有 ViewModel 数据卡在视图上。如果该项目被滚动出屏幕(我想当它被回收时)它会消失并且一切看起来都很好。您可以在下一个动画中看到它。
这太烦人了,我已经尝试了所有方法,但无法找到它。任何想法?
编辑:新提示,它从 Android 9 开始发生!
解决方案
推荐阅读
- powershell - 使用 PowerShell 从文件中删除特定文本
- node.js - 通过延迟和退避保护节点/快速端点免受攻击
- typescript - TypeScript 中没有调试器
- javascript - 未捕获的类型错误:无法在 onVehiclePhotoURISuccess 读取未定义的属性“substr”
- stata - 如何使 postfile 同时使用字符串和数字变量
- tags - 循环字符串中的单词时,Uniq 液体过滤器标签不起作用
- javascript - 使用 JS 进行搜索
- java - 如何限制输入整数的位数
- vue.js - Vue.js 中手动修改 slot 后如何触发渲染?
- ios - Swift:如何将通用协议作为另一个协议的参数传递