界面无小事(八):RecyclerView增删item
界面无小事(一): 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相关推荐
- 界面无小事(六):来做个好看得侧拉菜单!
界面无小事(一): RecyclerView+CardView了解一下 界面无小事(二): 让RecyclerView展示更多不同视图 界面无小事(三):用RecyclerView + Toolbar ...
- 【Android 界面效果49】RecyclerView高度随Item自适应
编写RecyclerView.ItemDecoration时,在onDraw方法中,Drawable的高度等于RecyclerView的高度减去RecyclerView的上下padding. @Ove ...
- 从源码角度入手实现RecyclerView的Item点击事件
转载请注明出处:http://www.cnblogs.com/cnwutianhao/p/6758373.html RecyclerView 作为 ListView 和 GridView 的替代产物, ...
- Android 高级UI设计笔记20:RecyclerView 的详解之RecyclerView添加Item点击事件
1. 引言: RecyclerView侧重的是布局的灵活性,虽说可以替代ListView但是连基本的点击事件都没有,这篇文章就来详细讲解如何为RecyclerView的item添加点击事件,顺便复习一 ...
- 运维无小事,小事不运维
序言 运维分为两种,一种是运维服务,一种是系统运维,而里面又可以继续细分,但是总体上来说,一种是对外的,直接 面对客户的,一种是对内的,可能是客户无感知的,例如中断1秒.我们总是喜欢做自己擅长的事,对 ...
- Windows界面编程第八篇 listbox彩色显示隔行变色
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 本文配套 ...
- Android简易音乐重构MVVM Java版-新增推荐、雷达歌单详情列表界面(十八)
Android简易音乐重构MVVM Java版-新增推荐.雷达歌单详情列表界面(十八) 关于 效果 修改ApiService 增加歌单列表实体类RecommendListEntity 新增歌单列表界面 ...
- RecyclerView 删除Item 以及删除整个RecyclerView
学而时习之,温故而知新. 今天用到了,居然忘记了,好尴尬,这里深夜了也在记录下, 1 删除整个RecyclerView hisList.clear();hisAdapter.notifyDataSet ...
- Ubuntu16.04 下的网易云出现网络异常、无法播放,界面无响应问题的统一解决
能够在Linux系统下体验到原生界面的网易云音乐是件不错的事情,但是它总是经常性的出现网络异常,界面无响应的问题 为了听歌的体验,进行深入探究: 首先通过终端启用网易云音乐:sudo netease- ...
最新文章
- asp.net 包含动态创建控件的容器如果要切换显示/隐藏不要用 Visible 属性
- CentOS 修改/etc/resolv.conf 重启network后又恢复到原来的状态
- sudo mount -o loop pm.img /mnt/floppy/mount 错误解决办法--mount 您必须指定文件系统的类型
- html的input的id,请求[“inputId”]不能在cshtml上工作
- 字符串中包含汉字和\u,显示出汉字来
- 3.cocos2dx之Menu,通过menu来实现场景的切换
- NodeJs基础之字节操作、路径操作和文本操作
- 值得收藏的时间复杂度速查表:数据结构操作、排序算法、图操作、堆操作
- java servlet 输出_JavaWeb中servlet读取配置文件的方式
- Android -- 获取摄像头帧数据解码
- ​【文末有福利】连续型随机变量及实例详解
- android4.4 hls,Android VideoView直播电视流(HLS)
- Linux系统常用命令,指令详解及案例
- java jvm理解_深入理解JVM(一)——基本原理
- linux 安装多版本jdk
- java调用ip138接口查询ip地址,iP查询接口Javascript代码示例 iP地址查询接口Javascript代码示例 iP138查询网...
- 全球及中国婴儿奶瓶架行业发展趋势预测及投资前景展望报告2022-2028年
- linux系统的7种banding方式
- 如何从官网下载JDK安装包?
- FL STUDIO宿主软件v20.9中文版使用技巧心得
热门文章
- java的方法调用中分不清_java中不太清晰的知识点
- c语言有语段不运行,各位C语言的高手,帮忙看下下面两段代码!他们不能运行!急!!!!!!...
- 32通过rs485烧写程序_28027芯片sci程序烧写问题请教
- 解决 idea 复制jsp 文件过来页面报404
- Bokeh——交互式可视化库
- dubbo知识点总结 持续更新
- python基础小白题4
- 李牛(Linux)打包
- Android 在onCreate()方法中获取控件宽高值为0解决方案
- Linux学习笔记(一)------实操排雷