android批量删除图片,Android RecyclerView单点、批量数据元素项目item的增加、删除和移动...
Android RecyclerView单点、批量数据元素项目item的增加、删除和移动
前文附录1,2介绍了基本的Android RecyclerView单点、批量元素项目的更新。现在给出其他比较重要的Android RecyclerView数据元素项目的删除和增加,删除和增加包含两种,一种是单点,另外一种是批量的元素。
(一)RecyclerView删除操作。
(a)单点删除:notifyItemRemoved(int position)
/**
* Notify any registered observers that the item previously located at position
* has been removed from the data set. The items previously located at and after
* position
may now be found at oldPosition - 1
.
*
*
This is a structural change event. Representations of other existing items in the
* data set are still considered up to date and will not be rebound, though their positions
* may be altered.
*
* @param position Position of the item that has now been removed
*
* @see #notifyItemRangeRemoved(int, int)
*/
public final void notifyItemRemoved(int position) {
mObservable.notifyItemRangeRemoved(position, 1);
}
在给adapter维持的数据队列删除一个元素后,调用此方法,该方法删除指定位置position的元素并更新RecyclerView。
(b)批量删除:notifyItemRangeRemoved(int positionStart, int itemCount)
public void notifyItemRangeRemoved(int positionStart, int itemCount) {
// since onItemRangeRemoved() is implemented by the app, it could do anything, including
// removing itself from {@link mObservers} - and that could cause problems if
// an iterator is used on the ArrayList {@link mObservers}.
// to avoid such problems, just march thru the list in the reverse order.
for (int i = mObservers.size() - 1; i >= 0; i--) {
mObservers.get(i).onItemRangeRemoved(positionStart, itemCount);
}
}
在给adapter维持的数据元素队列批量删除若干元素后,调用该方法,该方法删除从开始位置positionStart起之后的itemCount个数量的子元素,然后更新RecyclerView。
(二)RecyclerView增加操作。
(a)单点增加:notifyItemInserted(int position)
/**
* Notify any registered observers that the item reflected at position
* has been newly inserted. The item previously at position
is now at
* position position + 1
.
*
*
This is a structural change event. Representations of other existing items in the
* data set are still considered up to date and will not be rebound, though their
* positions may be altered.
*
* @param position Position of the newly inserted item in the data set
*
* @see #notifyItemRangeInserted(int, int)
*/
public final void notifyItemInserted(int position) {
mObservable.notifyItemRangeInserted(position, 1);
}在给adapter指定位置position增加一个元素后,调用notifyItemInserted方法,更新RecyclerView。
(b)批量增加:notifyItemRangeInserted(int positionStart, int itemCount)
public void notifyItemRangeInserted(int positionStart, int itemCount) {
// since onItemRangeInserted() is implemented by the app, it could do anything,
// including removing itself from {@link mObservers} - and that could cause problems if
// an iterator is used on the ArrayList {@link mObservers}.
// to avoid such problems, just march thru the list in the reverse order.
for (int i = mObservers.size() - 1; i >= 0; i--) {
mObservers.get(i).onItemRangeInserted(positionStart, itemCount);
}
}在给adapter适配器指定位置positionStart增加itemCount个数据元素后,调用此方法,更新RecyclerView。
(三)RecyclerView移动操作。
notifyItemMoved(int fromPosition, int toPosition)
/**
* Notify any registered observers that the item reflected at fromPosition
* has been moved to toPosition
.
*
*
This is a structural change event. Representations of other existing items in the
* data set are still considered up to date and will not be rebound, though their
* positions may be altered.
*
* @param fromPosition Previous position of the item.
* @param toPosition New position of the item.
*/
public final void notifyItemMoved(int fromPosition, int toPosition) {
mObservable.notifyItemMoved(fromPosition, toPosition);
}
移动操作的对象位置有两个,开始对象位置fromPosition和目的地址位置toPosition。设定这两个位置后,fromPosition元素位置的元素被移动到toPosition。fromPosition和toPosition是元素的集合队列中的下标。
附录:
1,《 Android RecyclerView更新子项目notifyItemChanged》链接:http://blog.csdn.net/zhangphil/article/details/78565738
2,《Android RecyclerView批量更新notifyItemRangeChanged》链接:http://blog.csdn.net/zhangphil/article/details/78579849
android批量删除图片,Android RecyclerView单点、批量数据元素项目item的增加、删除和移动...相关推荐
- jquery实现动态表格项目(表格增加删除/全选/表格变色特效等功能)(附源码+javaWEB开发如果需要可以直接使用)
jquery实现动态表格项目(表格增加删除/全选/表格变色特效)
- android 点动态显示图片,Android用RecyclerView实现动态添加本地图片
本文介绍了Android用RecyclerView实现动态添加本地图片,分享给大家,具体如下: 简单介绍一下用法: 1.跳转到图片选择页面: Intent intent = new Intent(Pa ...
- android自适应拉伸图片,Android 启动页-解决图片被拉伸和压缩问题,适配虚拟导航栏...
Android 启动页设置非常简单 //styles.xml 设置主题 @drawable/bg_splash true //activity使用主题,这时点击app图标,就会显示@drawable/ ...
- android jar 加入图片,Android动态加载外部jar包及jar包中图片等资源文件
Android动态加载外部jar包及jar包中图片等资源文件 Android应用程序由Java开发,因此Java中许多实用的特性,在Android中也有体现.动态加载Class,也就是外部jar包,在 ...
- android生成png图片,Android 中将 base64图片 解码为.png图片
android 中将 "base64图片" 解码为".png"图片 参考: 方法一 String base64Img = ""; // 若包 ...
- android 聊天背景图片,Android 实现从本地读取图片更改聊天背景
现在很多社交软件都有这个功能,因为本次我参加一个比赛也是要做一个社交软件,所以我就"画蛇添足"的添加了这个一个功能,因为我也是个Android初学者,所以说修改bug浪费了我至少1 ...
- android textview 背景图片,Android—TextView 背景颜色与背景图片设置
Android TextView 背景颜色与背景图片设置,android textview 控件,android textview 背景, android textview 图片,android te ...
- 如何使用python批量压缩图片_python利用Guetzli批量压缩图片
Google 又开源了,这次开源了一款图像算法工具 Guetzli.Guetzli,在瑞士德语中是"cookie(曲奇)"的意思,是一个针对数码图像和网页图像的 JPEG 编码器, ...
- android 横向滚动图片,Android使用Photoview实现图片左右滑动及缩放功能
Android使用Photoview实现图片左右滑动及缩放功能 发布时间:2020-10-12 14:51:12 来源:脚本之家 阅读:119 作者:kuaizilanqiu 我想,不管是做什么样的a ...
最新文章
- 大数据的应用难题:是否该建立数据公地
- 什么是SAP Spartacus schematics
- python如何输出两行_python pandas dataframe拆分行(某些行一行拆成多行)
- 计算机网络学习笔记(四)——差错控制、停等协议、回退N帧、选择性重传、滑动窗口、数据链路层HDLC、PPP协议、有限状态机
- 为什么 Netflix “永不宕机”?
- python 生成随机数的几种方法
- python软件下载安装百度网盘-python实现简单的百度云自动下载
- Mysql多源复制半同步_MySQL多源复制搭建
- linux中的轮询机制select/poll/epoll特点分析
- Linux下有趣的命令
- 夜间红外图像行人检测学习笔记
- alter index
- Linux常见英文报错中文翻译
- RemoteTestkit远程真机调试平台使用教程
- 文件隐藏服务器版本信息,隐藏Tengine的版本信息
- 当前主流服务器型号,当前服务器的主流品牌 型号 配置
- 新一代数据中心光纤布线技术发展趋势
- python爬b站评论_一个简单的爬取b站up下所有视频的所有评论信息的爬虫
- 996的压力下,程序员还有时间做副业吗?
- addevent()实现跨浏览器绑定事件
热门文章
- NO.111 禅道导出数据做透视表,让你轻松做年终工作总结。
- FQND之联想--username@host.domain跟进
- Tensorflow利用函数修饰符@tf.custom_gradients自定义函数梯度
- c++构建工具之make使用小结
- 桶排序 Bin Sort
- 基于Yolov5的烟火检测——模型训练与C++实现部署
- error response from daemon_Scrapy 框架-模拟登录-Request、Response
- 第16天:函数的定义和调用
- 查看服务器的某个端口是否允许访问
- IP选路与动态选路协议(六)