文档章节

RecyclerView删除方法notifyItemRemoved的坑

fantasiter
 fantasiter
发布于 2016/06/13 15:04
字数 216
阅读 3958
收藏 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
博文 115
码字总数 24535
作品 0
青岛
加载中

评论(1)

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

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

jzman
05/12
0
0
XamarinAndroid组件教程RecylerView动画组件使用动画(2)

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

大学霸
05/16
0
0
界面无小事(八):RecyclerView增删item

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

Sorrower丶
08/15
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

没有更多内容

加载失败,请刷新页面

加载更多

权限框架Shiro学习之表结构设计

权限框架Shiro学习之表结构设计 Shiro是一款优秀的开源安全框架,学习Shiro大家可以参考张开涛老师的博客:跟我学Shiro,当然也可参考我之前的笔记:Shiro实现身份认证、Shiro实现授权。 在学...

TyCoding
28分钟前
1
0
find命令和文件名后缀

9月18日任务 2.23/2.24/2.25 find命令 2.26 文件名后缀 which which 搜索可执行文件,必须在PATH环境变量目录中!!否则无法搜到! [root@centos7 ~]# which lsalias ls='ls --color=auto'...

robertt15
32分钟前
1
0
阿里Java程序员必备的Intellij IDEA 插件

善用Intellij插件可大幅提升我们的效率,以下是我用过不错的Intellij插件,分享给大家希望能帮到大家。 1. .ignore 生成各种ignore文件,一键创建git ignore文件的模板,免得自己去写 2. lom...

我是你大哥
42分钟前
1
0
为什么Java大神,都在看Spring Boot和Spring Cloud的书?

如果你是一名Java开发人员,并且最近正打算学习Spring Boot和Spring Cloud框架并寻找一些关于它们的最好的书籍,那么,你今天就来对地方了。 本文,我们将讨论一些学习Spring Boot和Spring ...

Java小铺
59分钟前
12
0
springboot logback日志配置

springboot 如果不使用外部tomcat的话,日志是需要自己配置的,不然的话就只有控制台的日志,但是日志又是我们在项目上了生产环境,出问题时,检查问题的唯一途径,所以我们要配置详细的日志...

曾大大胖
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部