当前位置: 首页 > news >正文

Android 中 RecyclerView 控件实现局部刷新而非整行刷新

一、RecyclerView 刷新分类

  • 整体刷新:刷新整个列表,整个列表重新绑定,数据全部变化,一般采用 notifyDataSetChanged() 函数来实现。
  • 多行刷新:刷新列表的连续几行,刷新的几行数据进行重新绑定,一般调用 notifyItemRangeChanged(start, count) 函数来实现。
  • 单行刷新:刷新列表的指定行,该行数据进行重新绑定,一般调用 notifyItemChanged(position) 函数来实现。
  • 单行局部刷新:刷新指定行的局部数据,只有局部数据进行重新绑定,一般调用 notifyItemChanged(position, payload) 函数来实现,其中 payload 为局部控件的 id 值。

二、实现局部刷新

1、数据模型

  • UserModel.kt
package com.android.recycleview.modelimport androidx.annotation.DrawableResdata class UserModel(val userName: String,val age: Int,@DrawableRes val photo: Int,val isEnable: Boolean
)

2、布局文件

(1)item_user_info.xm

  • 列表项布局,局部刷新 CheckBox 控件(id 为 enable_check)
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="wrap_content"android:layout_height="wrap_content"xmlns:app="http://schemas.android.com/apk/res-auto"android:paddingHorizontal="@dimen/dp_20"android:background="@color/gray"><TextViewandroid:id="@+id/name_text"android:layout_width="@dimen/dp_50"android:layout_height="wrap_content"android:textSize="@dimen/sp_20"android:textColor="@color/black"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintTop_toTopOf="parent"app:layout_constraintBottom_toBottomOf="parent"android:layout_marginStart="@dimen/dp_10"/><TextViewandroid:id="@+id/age_text"android:layout_width="@dimen/dp_50"android:layout_height="wrap_content"android:textSize="@dimen/sp_20"android:textColor="@color/black"app:layout_constraintTop_toTopOf="@+id/name_text"app:layout_constraintLeft_toRightOf="@+id/name_text"/><ImageViewandroid:id="@+id/photo_image"android:layout_width="@dimen/dp_20"android:layout_height="@dimen/dp_20"android:src="@mipmap/photo_icon"app:layout_constraintTop_toTopOf="@+id/name_text"app:layout_constraintBottom_toBottomOf="@+id/name_text"app:layout_constraintLeft_toRightOf="@+id/age_text"tools:ignore="ContentDescription" /><CheckBoxandroid:id="@+id/enable_check"android:layout_width="wrap_content"android:layout_height="wrap_content"app
http://www.dtcms.com/a/536136.html

相关文章:

  • STM32学习路线!软硬件兼修:裸机+RTOS+LVGL+硬件设计+项目实战 (STM32多核心开发板)
  • iOS 26 文件导出与数据分析,多工具组合下的开发者实践指南
  • Gradle 与 CI/CD 集成:Jenkins/GitHub Actions 自动化构建配置
  • STM32——IWDG
  • 一般的网站开发语言用什么免费网页制作
  • 浅述视频汇聚平台EasyCVR视频编解码与转码技术如何成就视频体验
  • 站长工具seo域名解析不了腾讯微信小程序公众号
  • cms网站访问人数网站主机多大
  • 基于线性预测算法的PON系统动态资源调度matlab仿真
  • 10月27日
  • 系规案例模拟题分享
  • flink实验三:实时数据流处理(踩坑记录)
  • Milvus简介
  • 高并发内存池 - 开发记录08,09
  • 廊坊网站排名优化公司哪家好哈尔滨网站制作公司
  • Node.js 数据查询优化技巧
  • 最新电子电气架构(EEA)调研-2
  • 【数据结构】顺序表+回调函数
  • 图像归一化:OpenCV 高效映射 [0,255] → [-1,1] 性能实测
  • allWebPlugin.IE扩展使用介绍
  • C语言输入输出函数完整指南:从基础到高级应用
  • 20.10 多模态PPT生成准确率突破93%!ChatPPT v3.0动态权重技术深度解析
  • 中国移动通信联合会人工智能与元宇宙产业委联席秘书长叶毓睿受聘为“北京设计学会无障碍设计专业委员会指导专家”
  • 励志网站织梦源码建个人网上银行登录入口
  • Nginx清除浏览器缓存的三个缓存响应头的关系详解
  • 14天极限复习软考-day5 软件工程 、UML
  • 基于M4-R1开发板的OpenHarmony开发实战丨创建第一个应用工程
  • 【计算机视觉】Python 验证码图片分割:基于 OpenCV 的字符区域提取实现
  • 时序论文速递:覆盖时间序列预测、分类、异常检测及交叉应用!(10.20-10.24)
  • wordpress 建视频网站福步外贸论坛怎样注册