android recyclerview 刷新 数据错乱的问题

前言

android recyclerview 错乱的问题

每次刷新item的背景框都发生偏移或者bug

解决方法

在添加数据之前先清空recyclerView的缓存

亲测有效!

java 复制代码
binding.recycler.getRecycledViewPool().clear();
binding.recycler.setLayoutManager(new LinearLayoutManager(getActivity()));
binding.recycler.setAdapter(mAdapter);

//或者
 binding.recycler.getRecycledViewPool().clear();
 mAdapter.setNewData(pileRadioList);

解决方法2

我们都知道recyclerview机制,是有复用item

所以我们在adapter里设置item的数据时,一定要严谨。

我在设置item背景框的时候 用了bean类的flag做本地标记

但是没有做else的判断,导致recyclervie在复用item的时候数据错乱

谨记此次教诲,严谨,严谨,一定要严谨。

adapter代码如下:

如此解决数据错乱的问题

java 复制代码
 if (item.getRadioItem().isFlag()) {
     consRadio.setBackground(mContext.getResources().getDrawable(R.drawable.blue_white_bg_5dp));
 } else {
     consRadio.setBackground(mContext.getResources().getDrawable(R.drawable.circle_white_bg_5dp));
 }
相关推荐
alexhilton5 小时前
Room Fts4:全文搜索替代 SQL LIKE
android·kotlin·android jetpack
hai_android10 小时前
把 Android App 打包成系统应用(System App)
android·kotlin·android jetpack
JMchen11 小时前
【Jetpack 内核实战 01】开篇:Jetpack 组件全家桶核心逻辑与专栏完整规划
android·kotlin·android jetpack
骑着蜗牛撵大象32713 小时前
Linux 进程间通信之管道:从 pipe() 的内核语义到 FIFO 落地排错
android·java·linux·系统编程·fifo·管道·进程间通信
hunterandroid13 小时前
Retrofit 网络请求的异常处理与重试策略实战
android
sejinan13 小时前
极致轻量与秒级起播:NativeWasmTv 开源硬核技术解析与升级版体验
android·开源·webview·tv
小羊没烦恼!14 小时前
Ajax与JSON的一些总结
android·java·前端·数据库·mysql·算法·okhttp
mmsx14 小时前
Android 静默失败实录:五个没有日志的线上事故
android·kotlin
hai_android15 小时前
从零实现一个支持跨进程(IPC)的自定义 Toast
android·kotlin·android jetpack
龙腾-虎跃15 小时前
基于 SIP 协议的自研电话终端:FreeSWITCH 语音与视频通信实战
android·音视频·freeswitch·sip协议终端·wertc