博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
界面无小事(八):RecyclerView增删item
阅读量:6435 次
发布时间:2019-06-23

本文共 1847 字,大约阅读时间需要 6 分钟。


目录

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

前言

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


增删item

当然首先你可以按照第一篇-建立基础的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按钮, 对应这两个方法.

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

效果图

不单单是我演示的这种布局, 还有线型的, 横向的, 瀑布流都可以有这种类似效果. 可参考.

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

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());

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

SlideInLeftAnimator
ScaleInAnimator
LandingAnimator

最后

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


转载地址:http://orhga.baihongyu.com/

你可能感兴趣的文章
Linux下区分物理CPU、逻辑CPU和CPU核数
查看>>
第二十一章:变换(三)
查看>>
同步异步阻塞非阻塞杂记
查看>>
2018年中国银行业十件大事,“Fintech深度融合,科技子公司遍地” ...
查看>>
Git SSH 连接phacility服务器
查看>>
【客户案例】智能驾驶行业如何上云?
查看>>
foreman源NO_PUBKEY 6F8600B9563278F6
查看>>
揭秘:蚂蚁金服bPaaS究竟是什么?
查看>>
mongo数据库单节点搭建
查看>>
WPF模糊和阴影效果
查看>>
增加关系型数据库驱动配置同步任务
查看>>
别用这种方式聊天,你都不知道自己是怎么聊死的
查看>>
中国香港地区 DDoS- botnet 态势分析
查看>>
另一个角度的架构师
查看>>
SparseArray<E>详解
查看>>
Eclipse-Java代码规范和质量检查插件-PMD
查看>>
阿里专家分享:企业级大数据轻量云实践
查看>>
阿里财报:云计算年度营收133亿,季度营收连续12个季度翻番
查看>>
人工智能化发展已经到了哪一步?
查看>>
php实现上传图片保存到数据库的方法
查看>>