还你的不仅仅是瀑布流!(RecyclerView+CardView用法)

移动开发 来源:魅力安卓 31℃ 0评论

在关于RecyclerView用法及优点总结的文章中,我们留了一个小尾巴,那就是瀑布流效果和点击事件的实现。今天我们不仅实现了各种布局效果的切换及RecyclerView的点击事件,还增加了子项item的增、删操作,更通过借助CardView控件,让你的界面效果变得丰富而且实用!让我们赶快看一下实现过程吧,都有点迫不及待了呢~

先上图,依旧Pokémon:

(俗话说没有效果图的实践都是耍流氓-。-)


01.线性布局、网格布局、瀑布流布局,任意切换!

通过效果图,我们可以看到,这次我们不仅实现了瀑布流布局显示效果,而且增加了几个按钮,用于实现线性、网格、瀑布流三种布局效果任意切换的功能。这个其实很简单,首先在布局中添加Button控件,然后在MainActivity中对Button添加click监听,重写click方法,在各自的click动作中,设置相应的LayoutManager即可。代码如下:


02.ImageView、TextView子布局控件,任意点击!

上次遗留的另一个小尾巴,就是RecyclerView点击事件。效果图中,我也进行了实现。而且你可以看到的时,点击是对ImageView和TextView分别进行的,而且是正常的单次短暂点击和长按点击两种方式。

实现起来也不难,主要是对MyAdapter的onCreateViewHolder中的holder做了手脚。首先从holder中分别获得存储的控件对象,为其设置点击事件监听(这里有setOnClickListener和setOnLongClickListener,即短按和长按),然后在对应click方法中写具体点击事件处理逻辑即可。代码如下:


03.item子项,增加、删除,任意操作!

增加和删除item子项,是RecyclerView使用内容中一个较为常见的场景。主要通过在适配器中自定义增加和删除方法实现,在list数据中通过add和remove方法,实现增加和删除数据的效果。相关代码暂不贴了,会整理提交到github中:

https://github.com/merrily01/RecyclerViewDemo  或点击原文即可查看。

04.引用CardView卡片控件,效果更好!

当你看到效果图的第一眼,你可能就发现了。我们每个子项的显示效果和之前单调的显示效果的有了截然不同的形象。下图是没用CardView的效果:


是的,你没看错,这次的卡片式风格明显比之前更加丰富~

这是怎么实现的呢?其实就是引用了CardView卡片式控件,是5.0后提出的,使用时注意同RecyclerView类似,需要引入依赖:

com.android.support:cardview-v7:24.2.1

然后在子布局.xml文件中,用一个CardView控件,将子布局的控件包裹起来即可。CardView引用也需要写全路径,如下:


其中有几个属性,比如:cardBackgroundColor 是指背景的颜色;cardCornerRadius 是圆角的大小。除此之外还有其他一些属性,在用到或感兴趣时,可以搜索试用一下~

今天的文章先到这里,关于RecyclerView的总结和使用,也归纳的相对比较全了。接下来我们会继续前进,探索并实践其他一些好玩、好用的Android知识!当然了,有时间自己也要把我们做过的小练习亲手实现了哦~

PS:源码及素材已上传至☞ GitHub: https://github.com/merrily01/RecyclerViewDemo/ 点击即可获取~ 


欢迎关注【魅力安卓】微信公众号

魅力安卓