界面无小事(八):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"> <item android:id="@+id/add" android:icon="@mipmap/ic_launcher" android:title="@string/add" app:showAsAction="never" /> <item android: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());
好了, 接下来看几个效果图吧:
最后
喜欢记得点赞哦, 有意见或者建议评论区见, 暗中关注我也是可以的.

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Android 应用自启动
使用Android Studio新建Android应用; 新建BootReceiver类并继承自BroadcastReceiver; 在BootReceiver类中的onReceive方法中对Intent中的Action进行判断,如果为Intent.ACTION_BOOT_COMPLETED,则证明接收到了自启广播,在相应得if语句中对为Intent设置Flags(此配置在Activity中调用startActivity时不需要设置,在试用context.startActivity()时必须要设置,否则会无法开启Activity),此处应设置为Intent.FLAG_ACTIVITY_NEW_TASK,然后设置要打开的Activity,调用intent.setClass(context,MainActivity.class),设置将要打开的界面为MainActivity,最后调用context.startActivity(intent)开启Activity。 @Override public voidonReceive(Context context,Intent intent) { ...
- 下一篇
ionic和cordova初探--从安装到运行首个app
好多人说ionic好用,一直要推荐我用,我就不信了,来安装玩一下试试效果。实践出真知!安装过程各种坑,工具太多了,太麻烦了,差点放弃(还好坚持下来呢)。 1.安装node 许多前端工具的安装都依赖于node的包管理器npm,Node官网: https://nodejs.org/ 安装完成后在cmd中输入 npm -v 回车。 查看版本号如图: 查看版本号 2.安卓环境 JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html JDK需要配置两个环境变量:(如果已配置就无需再配置) PATH:%JAVA_HOME%\bin CLASSPATH:.;%JAVA_HOME%\lib\tools.jar (一定不要忘了前面的点) 配置完成后,cmd中输入java -version 查看版本号。 3.安装安卓的SDK 打开Android Studio,File --> Settings --> 搜索sdk,找到对应的sdk进行安装即可。 需要在Path环境变量...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- Hadoop3单机部署,实现最简伪集群
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS7设置SWAP分区,小内存服务器的救世主