| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> Android RecycledView局部刷新的方法 -> 正文阅读 |
|
[移动开发]Android RecycledView局部刷新的方法 |
RecycledView局部刷新问题的引入和闲话一堆最近在做项目了,在项目过程中遇到很多问题,也基本对应地找到了解决方法,并从中获取知识,收获不小 在项目过程中遇到过这样一个问题,我需要使设置模块的设置项在选中时出现高亮效果 即在点击一个设置项时,除了在fragment里加载对应页面外,还需要在设置项的RecycledView里局部刷新某个item 我开始了思考,我们的每个item使用的都是一个布局页面,在我们这里是不可能通过id来找到需要改变属性的控件的,那么怎么才能对一个item作出修改而不影响别的item呢,对了!在加载RecycledView之前我们是需要自定义一个adapter适配器的,在适配器中有一个记录item索引值的position属性,我们不知道item的位置,但是adapter知道啊,于是我上网进行了查阅,果然找到了Android之RecyclerView的局部刷新。 这篇博客大概是介绍了adapter为我们提供的item局部刷新的一些api 于是我进入了代码进行查看: 实体类为了找到position索引值,我在需要传入的列表的对象中加入了int type属性,表示位置信息,再加入int backgroundId属性,表示对应是否高亮的背景资源文件。 代码如下: 如图, 方法封装在Activity中先声明一个自定义适配器对象
并且声明一个SettingType类的空对象,用于表示点击item时之前一个高亮的item,其中SettingType是实体的枚举类,上面图上已有
这两个对象要声明在类下,不能声明在
这是改变item背景资源文件的方法,将传入的settingType的backgroundId属性值设为高亮。 在preSettingType不为空时,做出之前所讲述操作,将之前高亮的item设为非高亮,局部刷新。随后将点击的item设为高亮,局部刷新。最后一步,将当前点击的item赋值给preSettingType,下次点击时,它就是上一次被点击的item了,代代相传。 方法封装好了,那么我们只要在使用时调用也就好了,那什么时候调用呢,调用的地方需要满足两个条件:
在出现这个问题之前我写过一个
这段代码的意思是,如果当前点击的item不是本身高亮的item,那么调用 调用方法实现局部刷新接下来看看怎么实现方法调用的吧 adapter同样提供了api用来响应item的点击事件: 现在,你的逻辑应该清晰了吧,如果还是不太理解,没关系,我们再看一次,想象一下一个横屏的设置页面,左边是设置项的列表,右边是设置项的页面,就像这样 我们需要在Activity加载的时候就加载fragment,对吧,即在onCreate()方法中去写加载fragment的逻辑,由于逻辑已经封装到 看看刚才那张图的第一个红框吧,就这么简单,一行代码
这里的意思就是列表的第一个元素传入 到这里,RecycledView的局部刷新就介绍完了,因为是项目代码,所以不能全部放出来,但是实现的主要代码都展现出来了,大家自己去敲敲代码尝试一下就明白了,有些地方可能我没讲清楚,希望大家谅解!另外,如果有需要可以留言,欢迎大家和我交流! |
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年2日历 | -2025/2/5 21:51:42- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |