RecyclerView的黄金伴侣

来源:互联网 发布:网络主播怎么应聘 编辑:程序博客网 时间:2024/06/10 12:53

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

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

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

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

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

特点:
1. 控制方便,例如设置margin,线宽,颜色等等。
2. 效率高,滑动流畅。
3. 线条样式多。

一、先看“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和文档,方便学习和使用。

0 0
原创粉丝点击