android recyclerview 刷新 数据错乱的问题

news/2024/7/8 1:35:50 标签: android, 缓存, mmkv, 组件, recyclerview

前言

android recyclerview 错乱的问题
每次刷新item的背景框都发生偏移或者bug

解决方法

在添加数据之前先清空recyclerView的缓存
亲测有效!

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代码如下:
如此解决数据错乱的问题

 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));
 }

http://www.niftyadmin.cn/n/5536010.html

相关文章

ReactNative如何实现沉浸式状态栏及渐变色Header【兼容Android和iOS】

沉浸式状态栏 需要用到react-native提供的StatusBar组件 import {StatusBar} from react-native;<StatusBar barStyle{dark-content} backgroundColor{transparent} translucent{true}></StatusBar>如果用到Navigation&#xff0c;需要设置如下属性 navigation.…

论文 | Measuring and Narrowing the Compositionality Gap in Language Models

存在的问题&#xff1a; 关于一个复杂的多跳问题&#xff0c;大语言模型可以正确回答基于该问题分解的多个子问题&#xff0c;但是对于这个问题的最终答案大语言模型可能最终还是给不出来正确的。该论文根据这个现象提出了一个术语&#xff0c;叫“组合性差距”。 解决的方法&…

ansible执行任务时,报错/usr/bin/env node没有文件或目录。

报错如图&#xff1a; 解决&#xff1a;添加软链即可 sudo ln -s /home/app/node-v18.20.3/bin/node /usr/bin/node

c++【入门】两个数之和

限制 时间限制 : 1 秒 内存限制 : 128 MB 题目 我们现在要做一个非常简单的题目&#xff0c;实现一个完整的程序。当它运行起来后&#xff0c;我们希望通过键盘输入两个整数&#xff0c;我们先把它们称为 a 和 b。然后把他们的和 a b 作为结果给存到sum&#xff0c;并输出…

【设计模式】设计模式学习线路与总结

文章目录 一. 设计原则与思想二. 设计模式与范式三. 设计模式进阶四. 项目实战 设计模式主要是为了改善代码质量&#xff0c;对代码的重用、解耦以及重构给了最佳实践&#xff0c;如下图是我们在掌握设计模式过程中需要掌握和思考的内容概览。 一. 设计原则与思想 面向对象编…

C# MathNet未完

Vector 在 MathNet.Numerics 中&#xff0c;Vector<T> 是表示向量的类。Vector<T> 可以是列向量或行向量&#xff0c;具体取决于你如何创建它以及如何使用它。以下是一些创建和使用 Vector<T> 的常见方法&#xff1a; 使用 Build.Dense 创建列向量&#xf…

Python/Django 服务器升级脚本

编写 Python/Django 服务器升级脚本可以根据具体需求而异&#xff0c;一般涵盖以下几个主要步骤&#xff1a; 在编写脚本之前&#xff0c;确保以下准备工作已完成&#xff1a; 确定需要升级的内容&#xff0c;例如代码、数据库结构、依赖库等。确保服务器和数据库备份&#x…

python vtkLODProp3D

vtkLODProp3D是VTK库中的一个类&#xff0c;用于表示一个可以根据相机距离改变其复杂度的3D对象。这种技术可以用于优化渲染性能&#xff0c;特别是当场景中有大量的对象或对象复杂度很高时。 在Python中&#xff0c;你可以使用VTK库来操作和处理3D数据。如果你想使用vtkLODPr…