界面无小事(一): RecyclerView+CardView了解一下

界面无小事(二): 让RecyclerView展示更多不同视图

界面无小事(三):用RecyclerView + Toolbar做个文件选择器

界面无小事(四):来写个滚动选择器吧!

界面无小事(五):自定义TextView

界面无小事(六):来做个好看得侧拉菜单!

界面无小事(七):使用代码动态增删布局


目录

  • 前言
  • 增删item
  • 自定义增删动画
  • 最后

前言

之前写过一篇代码动态增删布局的, 对比下这次的RecyclerView增删item, 说句实话, 代码动态增删布局基本可以退群了.


增删item

当然首先你可以按照第一篇-界面无小事(一): RecyclerView+CardView了解一下建立基础的RecyclerView. 这次的关键是在适配器代码中加入增删item的操作. 要注意一点, 刷新和原来在ListView的操作是不一样的. 你可以直接看官方文档, 大致有这几个:

  • notifyItemInserted()
  • notifyItemRemoved()
  • notifyItemMoved()
  • notifyItemChanged()

在适配器中加入如下代码:

public void addData(int position) {mData.add(position, "hello python");notifyItemInserted(position);
}public void removeData(int position) {mData.remove(position);notifyItemRemoved(position);
}
复制代码

然后我们在toolbar中加上add和del按钮, 对应这两个方法.

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"><itemandroid:id="@+id/add"android:icon="@mipmap/ic_launcher"android:title="@string/add"app:showAsAction="never" /><itemandroid:id="@+id/del"android:icon="@mipmap/ic_launcher"android:title="@string/del"app:showAsAction="never" />
</menu>
复制代码

并且设置长按为删除操作, 点击是增加操作. 好了, 上效果图:

不单单是我演示的这种布局, 还有线型的, 横向的, 瀑布流都可以有这种类似效果. 可参考界面无小事(二): 让RecyclerView展示更多不同视图.

那既然有默认动画, 肯定就能自定义动画了. 在这之前, 先说说几个方法. 用来设置动画的具体状态的持续时间.

rvTest.getItemAnimator().setAddDuration(400);
rvTest.getItemAnimator().setRemoveDuration(400);
rvTest.getItemAnimator().setMoveDuration(400);
rvTest.getItemAnimator().setChangeDuration(400);
复制代码

自定义增删动画

这里借助开源项目. 因为这个项目真的足够地棒. 自带动画个数都已经足够用了, 见下. 你还可以继续在这基础上自定义. 是不是感觉三生万物了.

Animators

分类 动画类名
Cool LandingAnimator
Scale ScaleInAnimator, ScaleInTopAnimator, ScaleInBottomAnimator, ScaleInLeftAnimator, ScaleInRightAnimator
Fade FadeInAnimator, FadeInDownAnimator, FadeInUpAnimator, FadeInLeftAnimator, FadeInRightAnimator
Flip FlipInTopXAnimator, FlipInBottomXAnimator, FlipInLeftYAnimator, FlipInRightYAnimator
Slide SlideInLeftAnimator, SlideInRightAnimator, OvershootInLeftAnimator, OvershootInRightAnimator, SlideInUpAnimator, SlideInDownAnimator

而且非常难得的是使用方法还很简单, 需要几个步骤

  • 在Module的build.gradle中写入
dependencies {implementation 'jp.wasabeef:recyclerview-animators:2.3.0'
}
复制代码
  • 在Project的build.gradle中写入
repositories {google()jcenter()
}
复制代码

具体使用部分只要用动画类名替换之前默认的动画类名即可. 例如:

rvTest.setAdapter(mAdapter);
rvTest.setItemAnimator(new SlideInLeftAnimator());
复制代码

好了, 接下来看几个效果图吧:


最后

喜欢记得点赞哦, 有意见或者建议评论区见, 暗中关注我也是可以的.


界面无小事(八):RecyclerView增删item相关推荐

  1. 界面无小事(六):来做个好看得侧拉菜单!

    界面无小事(一): RecyclerView+CardView了解一下 界面无小事(二): 让RecyclerView展示更多不同视图 界面无小事(三):用RecyclerView + Toolbar ...

  2. 【Android 界面效果49】RecyclerView高度随Item自适应

    编写RecyclerView.ItemDecoration时,在onDraw方法中,Drawable的高度等于RecyclerView的高度减去RecyclerView的上下padding. @Ove ...

  3. 从源码角度入手实现RecyclerView的Item点击事件

    转载请注明出处:http://www.cnblogs.com/cnwutianhao/p/6758373.html RecyclerView 作为 ListView 和 GridView 的替代产物, ...

  4. Android 高级UI设计笔记20:RecyclerView 的详解之RecyclerView添加Item点击事件

    1. 引言: RecyclerView侧重的是布局的灵活性,虽说可以替代ListView但是连基本的点击事件都没有,这篇文章就来详细讲解如何为RecyclerView的item添加点击事件,顺便复习一 ...

  5. 运维无小事,小事不运维

    序言 运维分为两种,一种是运维服务,一种是系统运维,而里面又可以继续细分,但是总体上来说,一种是对外的,直接 面对客户的,一种是对内的,可能是客户无感知的,例如中断1秒.我们总是喜欢做自己擅长的事,对 ...

  6. Windows界面编程第八篇 listbox彩色显示隔行变色

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 本文配套 ...

  7. Android简易音乐重构MVVM Java版-新增推荐、雷达歌单详情列表界面(十八)

    Android简易音乐重构MVVM Java版-新增推荐.雷达歌单详情列表界面(十八) 关于 效果 修改ApiService 增加歌单列表实体类RecommendListEntity 新增歌单列表界面 ...

  8. RecyclerView 删除Item 以及删除整个RecyclerView

    学而时习之,温故而知新. 今天用到了,居然忘记了,好尴尬,这里深夜了也在记录下, 1 删除整个RecyclerView hisList.clear();hisAdapter.notifyDataSet ...

  9. Ubuntu16.04 下的网易云出现网络异常、无法播放,界面无响应问题的统一解决

    能够在Linux系统下体验到原生界面的网易云音乐是件不错的事情,但是它总是经常性的出现网络异常,界面无响应的问题 为了听歌的体验,进行深入探究: 首先通过终端启用网易云音乐:sudo netease- ...

最新文章

  1. asp.net 包含动态创建控件的容器如果要切换显示/隐藏不要用 Visible 属性
  2. CentOS 修改/etc/resolv.conf 重启network后又恢复到原来的状态
  3. sudo mount -o loop pm.img /mnt/floppy/mount 错误解决办法--mount 您必须指定文件系统的类型
  4. html的input的id,请求[“inputId”]不能在cshtml上工作
  5. 字符串中包含汉字和\u,显示出汉字来
  6. 3.cocos2dx之Menu,通过menu来实现场景的切换
  7. NodeJs基础之字节操作、路径操作和文本操作
  8. 值得收藏的时间复杂度速查表:数据结构操作、排序算法、图操作、堆操作
  9. java servlet 输出_JavaWeb中servlet读取配置文件的方式
  10. Android -- 获取摄像头帧数据解码
  11. ​【文末有福利】连续型随机变量及实例详解
  12. android4.4 hls,Android VideoView直播电视流(HLS)
  13. Linux系统常用命令,指令详解及案例
  14. java jvm理解_深入理解JVM(一)——基本原理
  15. linux 安装多版本jdk
  16. java调用ip138接口查询ip地址,iP查询接口Javascript代码示例 iP地址查询接口Javascript代码示例 iP138查询网...
  17. 全球及中国婴儿奶瓶架行业发展趋势预测及投资前景展望报告2022-2028年
  18. linux系统的7种banding方式
  19. 如何从官网下载JDK安装包?
  20. FL STUDIO宿主软件v20.9中文版使用技巧心得

热门文章

  1. java的方法调用中分不清_java中不太清晰的知识点
  2. c语言有语段不运行,各位C语言的高手,帮忙看下下面两段代码!他们不能运行!急!!!!!!...
  3. 32通过rs485烧写程序_28027芯片sci程序烧写问题请教
  4. 解决 idea 复制jsp 文件过来页面报404
  5. Bokeh——交互式可视化库
  6. dubbo知识点总结 持续更新
  7. python基础小白题4
  8. 李牛(Linux)打包
  9. Android 在onCreate()方法中获取控件宽高值为0解决方案
  10. Linux学习笔记(一)------实操排雷