文档章节

RecyclerView删除方法notifyItemRemoved的坑

fantasiter
 fantasiter
发布于 2016/06/13 15:04
字数 216
阅读 4173
收藏 1

平常我们删除列表的某个Item的时候,一般是先调用List的remove方法,然后通过notifyDataSetChanged来刷新列表.代码如下:


    //这种删除并刷新的方法是没有动画效果的
    @Override
    public void onBindViewHolder(final GoogleViewHolder holder, final int position) {
        final ItemBean item = items.get(position);
        holder.buttonRecyclerDelete.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    items.remove(position);
                    notifyDataSetChanged();
                   }
            });
    }

然而RecyclerView自带notifyItemRemoved方法不仅可以实现删除功能,而且还有动画效果. 然而并没有完,假如仅仅调用notifyItemRemoved的话,删除会出很多问题,比如:点击删除position = 1的Item,实际删除的是下一个,所以我们需要这么做,加上notifyItemRangeChanged这个方法,更新一下列表:


      @Override
    public void onBindViewHolder(final GoogleViewHolder holder, final int position) {
        final ItemBean item = items.get(position);
        holder.buttonRecyclerDelete.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    items.remove(position);
                    notifyItemRemoved(position);
                    notifyItemRangeChanged(position, getItemCount());
                }
            });
    }

© 著作权归作者所有

共有 人打赏支持
fantasiter
粉丝 1
博文 116
码字总数 24736
作品 0
青岛
私信 提问
加载中

评论(1)

真永远ddd
真永远ddd
快速删除还是有问题
终极解决办法
http://blog.csdn.net/iamdingruihaha/article/details/73274010
RecyclerView实现拖动排序和滑动删除功能

RecyclerView 的拖动排序需要借助一下 ItemTouchHelper 这个类,ItemTouchHelper 类是 Google 提供的一个支持 RecyclerView 滑动和拖动的一个使用类,下面使用该类实现 RecyclerView 的滑动删...

jzman
05/12
0
0
界面无小事(八):RecyclerView增删item

界面无小事(一):RecyclerView+CardView了解一下 界面无小事(二):让RecyclerView展示更多不同视图 界面无小事(三):用RecyclerView + Toolbar做个文件选择器 界面无小事(四):来写个滚动选择器吧...

Sorrower丶
08/15
0
0
XamarinAndroid组件教程RecylerView动画组件使用动画(2)

XamarinAndroid组件教程RecylerView动画组件使用动画(2) 如果开发者要为RecylerView的子元素添加动画效果,需要使用RecyclerView类中的SetItemAnimator()方法,其语法形式如下: 其中,anima...

大学霸
05/16
0
0
RecyclerView进阶

上篇文章我们讲解了RecyclerView的基本使用,本篇就让我们承接上篇文章讲下RecyclerView的进阶使用。 没看过上篇的朋友可以点击右边的传送门:《RecyclerView基本使用》 背景 RecyclerView有...

安卓小哥
2017/12/26
0
0
使用RecyclerView替代ListView(一)

RecyclerView是一个比ListView更灵活的一个控件,以后可以直接抛弃ListView了。具体好在哪些地方,往下看就知道了。 首先我们来使用RecyclerView来实现ListView的效果,一个滚动列表,先看下...

henry-zhang
2015/10/16
5K
0

没有更多内容

加载失败,请刷新页面

加载更多

http协议请求头的意义

GET /day31_Http_306/index.jsp HTTP/1.1: GET请求,请求服务器路径为/hello/index.jsp,协议为1.1 请求头 1.Host:localhost:请求的主机名为localhost2.User-Agent:Mozilla/5.0(Windows NT......

潇潇程序缘
37分钟前
6
0
Netty 简单服务器 (三)

经过对Netty的基础认识,设计模型的初步了解,来写个测试,试试手感 上篇也说到官方推荐我们使用主从线程池模型,那就选择这个模型进行操作 需要操作的步骤: 需要构建两个主从线程组 写一个服务器...

_大侠__
47分钟前
8
0
day02:管道符、shell及环境变量

1、管道符:"|" 用于将前一个指令的输出作为后一个指令的输入,且管道符后面跟的是命令(针对文档的操作):cat less head tail grep cut sort wc uniq tee tr split sed awk等) [root@localho...

芬野de博客
58分钟前
15
0
Kubernetes系列——Kubernetes 组件、对象(二)

一、Kubernetes 组件 介绍了Kubernetes集群所需的各种二进制组件。 Master 组件 Master组件提供集群的管理控制中心。Master组件可以在集群中任何节点上运行。但是为了简单起见,通常在一...

吴伟祥
今天
17
0
Flink-数据流编程模型

1、抽象等级 Flink提供了不同级别的抽象来开发流/批处理应用程序。 1) 低层级的抽象 最低层次的抽象仅仅提供有状态流。它通过Process函数嵌入到DataStream API中。它允许用户自由地处理来自一...

liwei2000
今天
15
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部