美文网首页
【安卓相关】CymChad BaseRecyclerViewAd

【安卓相关】CymChad BaseRecyclerViewAd

作者: norkm | 来源:发表于2020-09-01 11:14 被阅读0次

首先说明版本

implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:3.0.4'

多布局

1.实体类继承 implements MultiItemEntity,然后实现 getItemType() 方法。

public class ArticleBean implements MultiItemEntity{

    //  文章id
    private long articleId;

    //  文章标题
    private String title;

    //  文章内容
    private String previewImage;

    //  类型
    private int itemType;

    @Override
    public int getItemType() {
        return itemType;
    }

    public void setItemType(int itemType) {
        this.itemType = itemType;
    }

    public long getArticleId() {
        return articleId;
    }

    public void setArticleId(long articleId) {
        this.articleId = articleId;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getPreviewImage() {
        return previewImage;
    }

    public void setPreviewImage(String previewImage) {
        this.previewImage = previewImage;
    }

}

2.适配器

public class MainArticleAdapter extends BaseMultiItemQuickAdapter<ArticleBean, BaseViewHolder> {


    public MainArticleAdapter(@Nullable List<ArticleBean> data) {
        super(data);

        //  1、2、3 其实就是上面的 itemType,不同的 itemType 值返回不同的布局
        //  这里写死了,一般开发过程中一般使用常量
        addItemType(1, R.layout.item_normal_article);
        addItemType(2,R.layout.item_images_article);
        addItemType(3,R.layout.item_video_article);
    }

    @Override
    protected void convert(@NotNull BaseViewHolder baseViewHolder, ArticleBean articleBean) {
        //  然后这里,不同布局做不同操作
        switch (baseViewHolder.getItemViewType()) {
            case 1:
                
                break;
            case 2:

                break;
            case 3:

                break;
        }
    }
}

3.使用

        RecyclerView recyclerView = findViewById(R.id.recyclerView);

        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
        linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
        recyclerView.setLayoutManager(linearLayoutManager);

        List<ArticleBean> list = new ArrayList<>();
        //  这里写死了,一般开发过程中一般使用常量
        for(int i =0;i<10;i++){
            ArticleBean articleBean = new ArticleBean();
            if(i % 3 == 0){
                articleBean.setItemType(3);
            }else if(i %2 ==0){
                articleBean.setItemType(2);
            }else{
                articleBean.setItemType(1);
            }

            list.add(articleBean);
        }
        MainArticleAdapter mainArticleAdapter = new MainArticleAdapter(list);
        recyclerView.setAdapter(mainArticleAdapter);

相关文章

网友评论

      本文标题:【安卓相关】CymChad BaseRecyclerViewAd

      本文链接:https://www.haomeiwen.com/subject/qlzmsktx.html