RecyclerView的黃金伴侶

記得在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和文檔,方便學習和使用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章