小追兵专栏
记得在15年年初,大部分Android开发者还没开始接触Recyclerview的时候,我尝试着使用了下,当时关于他的资料网上不多,用着真心难受,虽然他很强大,很灵活,可是对于用习惯了Listview的我来说,用着很不习惯。不知道各位开始使用感受如何。
今天给大家介绍两个开源库,让使用Recyclerview方便到一塌糊涂。
- 通用的Adapter适配器(BaseRecyclerViewAdapterHelper):Github地址
特点:
- 添加Header和Footer的方法。
- 添加了Item的点击监听。
- 添加了上拉加载更多。
- 兼容实现google的下来刷新。
- 实现了不同的滑动动画。
- 更重要的是他是通用万能的Adapter。
- 等等。。。。请到github看文档。
- RecyclerView的分割线(RecyclerView-FlexibleDivider):Github地址
特点:
- 控制方便,例如设置margin,线宽,颜色等等。
- 效率高,滑动流畅。
- 线条样式多。
一、先看“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;
我项目有个页面发现滑动卡顿,性能很差,最后找到原因是自定义分割线的问题,果断换用该库,解决了卡顿现象。
贴出部分代码,详情见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和文档,方便学习和使用。
最后:有需要Shadowsock翻墙账号可以私聊。