MultiTypeAdapter實(shí)現(xiàn)RecyclerVIew中的多類(lèi)型布局

MultiTypeAdapter是一款簡(jiǎn)單好用支持多種類(lèi)型的RecyclerView的適配器,使用簡(jiǎn)單,功能強(qiáng)大。
MultiTypeAdapter整個(gè)類(lèi)庫(kù)只有9個(gè)class文件,支持bean和type之間一對(duì)多的關(guān)系綁定,即一個(gè)數(shù)據(jù)bean對(duì)應(yīng)著一個(gè)布局類(lèi)型。

基本用法

// project build.gradle
repositories {
        maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
        maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter/' }
        google()
        jcenter()
}
// module build.gradle
dependencies {
        implementation 'me.drakeet.multitype:multitype:3.3.1'
}

代碼中的使用

MultiTypeAdapter mAdapter = new MultiTypeAdapter();
//獲取數(shù)據(jù)
HashMap<Class, BaseViewBinder> registerMap = giftScene.registerMessageBinder();
//進(jìn)行綁定
if (registerMap.size() > 0) {
    for (Map.Entry<Class, BaseViewBinder> entry : registerMap.entrySet()) {
    mAdapter.register(entry.getKey(), entry.getValue());
    }
}
mAdapter.setItems(listMsg);
MiguLinearLayoutManager layoutManager= new MiguLinearLayoutManager(context,
LinearLayoutManager.VERTICAL, false);
mRecyclerView.setLayoutManager(layoutManager);
if (refreshHeader != null && refreshHeader instanceof IRefreshHeader) {
     mRecyclerView.setRefreshHeaderView(refreshHeader);
}
//設(shè)置adapter
mRecyclerView.setAdapter(mAdapter);

類(lèi)與布局綁定

//class GiftScene
@Override public HashMap <Class, BaseViewBinder> registerMessageBinder() {
        HashMap <Class, BaseViewBinder> registerMap = new HashMap <>();
        registerMap.put(GiftListBean.class, new BaseViewBinder(GiftListViewItem.class));
        return registerMap;
    }
public class BaseViewBinder<V, T> extends ItemViewBinder<V, T, Object> {

    public BaseViewBinder() {
    }

    public BaseViewBinder(Class vuClass) {
        this.vuClass = vuClass;
    }

    public BaseViewBinder(CallBack <Object> callBack) {
        itemCallBack = callBack;
    }

    public BaseViewBinder(Class vuClass, CallBack <Object> callBack) {
        this.vuClass = vuClass;
        itemCallBack = callBack;
    }

    @Override
    protected void beforeInit() {
        super.beforeInit();
    }
}
public class GiftListItem extends ViewUtils{

    @Override
    public int getLayoutId() {
        return R.layout.item_view;
    }

    @Override
    public void bindView() {
        super.bindView();
        //初始化布局
    }

    @Override
    public void bindData() {
        super.bindView();
        //初始化布局
    }

}

快來(lái)試一試吧~~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容