RecyclerView局部刷新

article/2025/10/18 9:49:05

在RecyclerView中,我们时常会用到局部刷新,我们大多数是使用:notifyItemChanged。

我在使用这个局部刷新过程中突然发现我有几个notifyItemChanged没有效果,我就在:

onBindViewHolder(@NonNull ViewHolder holder, int position, @NonNull List<Object> payloads)

之中,看payloads是否有数据,结果发现我自定义的payload并没有传过来!懵逼了,我在想是不是我在Recycler view中定义了两种布局导致的。于是就去把两种布局简化了合并到一个Layout中,结果还是没有效果,我后面在网上百度找到一篇很有作用的文章,他说:如果你在几个payload传值时如果之间有一个payload为null,payload就会清空。

文章在这:——》——》paylload为空;

于是我就把所有:adapter.notifyItemChanged(y,"a");//局部刷新,都加上字符,哪怕不需要加的我都大撒谎给你了双引号,但还是没有效果!!!炸裂!

后来我觉得可能是:adapter.notifyDataSetChanged();的原因,我就把这个删除掉,重新运行并在重写onBindViewHolder位置等传回来的数据这一次就ok了,数据传回来了,局部刷新终于实现了。

看效果:

1.准备刷新的位置:

 if (verUp.toString().trim().equals(ver+"    设备可更新!")){upAdapter.notifyItemChanged(y,"statuColor");//刷新payload为statuColor
//                itemChange.itemChange(y,"statuColor");}else {
//                itemChange.itemChange(y,"statu");upAdapter.notifyItemChanged(y,"statu");//刷新payload为statu的数据}

2.重写 onBindViewHolder获取刷新数据:

if (payloads.get(0).toString().equals("statu")){holder.runTime.setText(equipmentBean.getUptime());holder.statue.setText(equipmentBean.getStatus());holder.router_version.setText(equipmentBean.getVer());}else if (payloads.get(0).toString().equals("statuColor")){holder.runTime.setText(equipmentBean.getUptime());holder.statue.setText(equipmentBean.getStatus());holder.router_version.setText(equipmentBean.getVer());holder.router_version.setTextColor(Color.RED);}

 3.传过来的数据

 ok,可以局部刷新了!

 


http://chatgpt.dhexx.cn/article/jcX9dQSM.shtml

相关文章

android局部动态刷新,RecyclerView的局部刷新爬坑之路简述

RecyclerView的局部刷新爬坑之路简述&#xff0c;实际上RecyclerView做局部刷新是非常容易的&#xff0c;其实就是使用好带payload参数的这个notifyItemRangeChanged方法&#xff0c;以及override带payload的这个onBindViewHolder方法&#xff0c;在onBindViewHolder中去刷新你…

RecyclerView局部刷新机制

之前在使用RecyclerView的遇到过一个问题&#xff0c;使用notifyItemChanged刷新数据的时候会出现重影或者闪烁的现象。 这个问题很容易出现&#xff0c;当我们的列表中有进度显示&#xff08;比如下载&#xff09;&#xff0c;这时候需要不停的更新进度&#xff0c;就需要使用…

jsp java局部刷新_jsp怎么实现局部刷新

jsp实现局部刷新的方法&#xff1a;首先创建一个处理ajax请求的jsp文件&#xff1b;然后设置输出信息的格式及字符集&#xff1b;最后利用JSP和ajax来实现局部页面刷新即可。 通过 AJAX&#xff0c;JavaScript 可使用 JavaScript 的 XMLHttpRequest 对象来直接与服务器进行通信…

bootstrap切换tab页局部刷新_AdminLTE实现局部刷新

前言 AdminLTE是一个基于boostrap的前端模板,里面集成了好多插件,可以说方便又臃肿,毕竟不是所有插件都用得到,。好不容易找到个喜欢的前端模板,无奈每次点击菜单都会整个页面刷新一次,网上找了半天也没找到一个喜欢的局部刷新的解决方法。只好自己去啃js了。由于修改了原…

java局部刷新_HTML页面局部刷新的实现代码

这篇文章主要介绍了HTML页面局部刷新的实现代码的相关资料&#xff0c;写的十分的全面细致&#xff0c;具有一定的参考价值&#xff0c;对此有需要的朋友可以参考学习下。如有不足之处&#xff0c;欢迎批评指正。 事件响应刷新&#xff1a;有请求才会刷新 1、通过JS HTML DOM或…

原生JS局部刷新

目录 使用XMLHttpRequest对象进行异步请求&#xff1a; 2.使用fetch API进行异步请求 3.使用事件监听器进行局部刷新 4.servlet实现img验证码局部刷新 依赖jar包 Servlet login.jsp 在原生JS中&#xff0c;可以使用以下几种方式实现局部刷新&#xff1a; 使用XMLHttpReques…

html局部刷新数据,局部刷新.html

&#xfeff;局部刷新 $axure.utils.getTransparentGifPath function() { return resources/images/transparent.gif; }; $axure.utils.getOtherPath function() { return resources/Other.html; }; $axure.utils.getReloadPath function() { return resources/reload.html;…

flutter 局部刷新

目的&#xff1a;局部刷新 效果&#xff1a;点击右下角刷新按钮后&#xff0c;对九宫格中的图片刷新状态 思路&#xff1a;两个方法 一、整个页面都刷新&#xff0c;局部组件有变化&#xff0c;用UniqueKey() 二、只针对局部组件刷新&#xff0c;用GlobalKey() 具体操作&…

什么是局部刷新

局部刷新 浏览器在展示数据时&#xff0c;此时在窗口既可以看到本次的响应数据&#xff0c;同时又可以看到浏览器内存原有数据。 局部刷新原理&#xff1a; 不由浏览器发送请求给服务端 浏览器委托浏览器内存中一个脚本对象代替浏览器发送请求 这个行为导致服务端直接将…

【PSFTP】Windows从Linux获取文件或目录

1、安装Putty Win10先安装Putty 官方下载地址&#xff1a;http://www.putty.be/latest.html 安装后&#xff0c;Win10运行PSFTP 2、登录Linux 提示使用open host.name连接服务器 psftp: no hostname specified; use "open host.name" to connect psftp>参考…

putty、pscp、psftp 使用教程

如何从安装了Windows的工作电脑连远程接到Linux服务器?其实有很多软件,比如 PuTTY、XShell、CRT、MobaXterm等等。不过还是 PuTTY最简单易用、无需安装、并且开源免费。PuTTY其实是一个软件套装,里边除了最常用的putty之外,还包含了像 pscp、psftp等可以用于文件传输的工具…

putty和psftp命令行参数

putty和psftp命令行参数 https://the.earth.li/~sgtatham/putty/latest/w32/putty.zip https://the.earth.li/~sgtatham/putty/latest/w64/putty.zip https://the.earth.li/~sgtatham/putty/latest/puttydoc.zip https://the.earth.li/~sgtatham/putty/latest/putty-0.72.tar.g…

psftp

2019独角兽企业重金招聘Python工程师标准>>> 当连接到远程计算机以后&#xff0c;使用以下命令&#xff1a; bye 结束 psftp 。 cd 改变远程服务器的目录。 chmod 改变远程服务器的文件或文件夹的权限及属性。 del 删除远程服务器上的文件。 dir …

linux psftp,使用PSFTP实现Windows、Linux之间的文件传输

安装PuTTY时自动安装了PSFTP 使用PSFTP可以实现Winodws、Linux之间的文件传输。 打开PSFTP&#xff0c;输入Linux的ip地址&#xff0c;输入要登录的用户名、密码 Windows向Linux传文件&#xff1a; put D:\jdk-8u241-linux-x64.rpm /root/jdk-8u241-linux-x64.rpm put 本地文件…

putty以及psftp的基本操作,使用方法等

1、putty登陆远程服务器 open之后进入登陆界面&#xff0c;输入用户名之后点击Enter&#xff0c;之后输入登陆密码&#xff08;界面不显示&#xff0c;输入正确后直接Enter就可以&#xff09; 进入之后的界面 之后就可以输入命令进行操作了 2、文件传输psftp&#xff1a; 运行…

PSFTP工具的使用教程

PSFTP&#xff1a;是Putty的SFTP客户端&#xff0c;可以通过SFTP协议在两台电脑之间的传输文件。它和 PSCP相比的优点在于可以与服务器进行交互&#xff0c;遍历服务器上的文件系统&#xff0c;在一个会话中上传或下载多个文件。而 PSCP 只能一次传输一个文件&#xff0c;传输完…

Vector3.Lerp

Unity3D中的线性插值Lerp()函数解析 在unity3D中经常用线性插值函数Lerp()来在两者之间插值&#xff0c;两者之间可以是两个材质之间、两个向量之间、两个浮点数之间、两个颜色之间&#xff0c;其函数原型如下&#xff1a; Material.Lerp 插值 function Lerp(start : Materi…

Unity 的Vector3.Project 和 Vector3.ProjectOnPlane

目录 1.public static Vector3 Project(Vector3 vector, Vector3 onNormal); 描述 &#xff1a; 代码&#xff1a; 效果&#xff1a; 结论&#xff1a; 2.public static Vector3 ProjectOnPlane(Vector3 vector, Vector3 planeNormal);返回向量在平面上的位置。 描述 …

Vector3——简单的3D向量类

参考资料&#xff1a;1、 [美] 邓恩&#xff08;Dunn F.&#xff09;著. 3D数学基础——图形设计与开发. 史银雪&#xff0c;陈洪&#xff0c;王荣静 译 清华大学出版社 p57-65 2、http://www.2cto.com/kf/201311/260139.html 编程环境 QT4.8.4 VS2010 本文用 C实现一个简单…

Unity Vector3.Dot(VectorA, VectorB)

Unity Vector3.Dot(VectorA, VectorB) Vector3.Dot(VectorA, VectorB) 等于 VectorA * VectorB。 而对于两个向量的乘积计算&#xff1a; VectorA * VectorB Ax * Bx Ay * By Az * Bz 例如&#xff1a; VectorA(1,2,3) * VectorB(4,5,6) 1*42*53*632 一般应用于判断飞行…