Recyclerview的黄金搭档

2017-01-14 10:24:00来源:http://www.jianshu.com/p/726fe0f9e1da作者:小追兵人点击

第七城市

小追兵专栏


记得在15年年初,大部分Android开发者还没开始接触Recyclerview的时候,我尝试着使用了下,当时关于他的资料网上不多,用着真心难受,虽然他很强大,很灵活,可是对于用习惯了Listview的我来说,用着很不习惯。不知道各位开始使用感受如何。


今天给大家介绍两个开源库,让使用Recyclerview方便到一塌糊涂。



通用的Adapter适配器(BaseRecyclerViewAdapterHelper):Github地址


特点:


添加Header和Footer的方法。
添加了Item的点击监听。
添加了上拉加载更多。
兼容实现google的下来刷新。
实现了不同的滑动动画。
更重要的是他是通用万能的Adapter。
等等。。。。请到github看文档。



RecyclerView的分割线(RecyclerView-FlexibleDivider):Github地址


特点:


控制方便,例如设置margin,线宽,颜色等等。
效率高,滑动流畅。
线条样式多。一、先看“BaseRecyclerViewAdapterHelper”



BaseRecyclerViewAdapterHelper


BaseRecyclerViewAdapterHelper


BaseRecyclerViewAdapterHelper

以上三张图片来自BaseRecyclerViewAdapterHelper.


使用代码如下:


public class QuickAdapter extends BaseQuickAdapter<Status> {
public QuickAdapter() {
super(R.layout.tweet, DataServer.getSampleData());
}
@Override
protected void convert(BaseViewHolder helper, Status item) {
helper.setText(R.id.tweetName, item.getUserName())
.setText(R.id.tweetText, item.getText())
.setText(R.id.tweetDate, item.getCreatedAt())
.setVisible(R.id.tweetRT, item.isRetweet())
.linkify(R.id.tweetText);
Glide.with(mContext).load(item.getUserAvatar()).crossFade().into((ImageView) helper.getView(R.id.iv));
}
}

更多使用请看github的使用文档。我这里不贴了。


二、再看“RecyclerView-FlexibleDivider”

RecyclerView-FlexibleDivider

RecyclerView-FlexibleDivider

以上两张图片来自RecyclerView-FlexibleDivider;


我项目有个页面发现滑动卡顿,性能很差,最后找到原因是自定义分割线的问题,果断换用该库,解决了卡顿现象。


贴出部分代码,详情见github文档。


RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerview);
recyclerView.addItemDecoration(
new HorizontalDividerItemDecoration.Builder(this)
.color(Color.RED)
.sizeResId(R.dimen.divider)
.marginResId(R.dimen.leftmargin, R.dimen.rightmargin)
.build());

以上代码是贴的,只是让大家有个大概的认识,具体请点开链接,有Demo和文档,方便学习和使用。




第七城市

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台