BaseRecyclerViewAdapterHelper之BaseMultiItemQuickAdapter实现自定义item类型

    xiaoxiao2021-03-25  155

    1. 一个实体类RectclerItem

    public class RecyclerItem implements MultiItemEntity { private String title;    private String content;    private int item_type;    public RecyclerItem(int item_type){ this.item_type = item_type;    } public RecyclerItem(String title, String content){ this.title = title;        this.content = content;    } public RecyclerItem(String title, String content, int item_type){ this.title = title;        this.content = content;        this.item_type = item_type;    } public int getItem_type() { return item_type;    } public void setItem_type(int item_type) { this.item_type = item_type;    } public String getTitle() { return title;    } public void setTitle(String title) { this.title = title;    } public String getContent() { return content;    } public void setContent(String content) { this.content = content;    } @Override    public int getItemType() { return item_type;    } }

    2. 三个item视图文件(view_multiltem_def_item、view_list_item和view_home_list_item)

    view_multiltem_def_item.xml

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical" android:layout_width="match_parent"    android:layout_height="wrap_content">    <TextView        android:id="@+id/multiltem_def_tv"        style="@style/TextStyle_14sp_666"        android:layout_width="match_parent"        android:layout_height="40dp"        android:paddingLeft="10dp"        android:gravity="center"        android:text="这是默认的布局"/> </LinearLayout>

    view_list_item.xml(同上)

    view_home_list_item.xml

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical" android:layout_width="match_parent"    android:layout_height="wrap_content">    <TextView        style="@style/TextStyle_14sp_666"        android:id="@+id/content_text_tv"        android:layout_width="match_parent"        android:layout_height="50dp"        android:gravity="center"        android:text="这是一条内容" /> </LinearLayout>

    3. 适配器MultiItemQuickAdapter

    public class MultiItemQuickAdapter extends BaseMultiItemQuickAdapter<RecyclerItem,BaseViewHolder> { /**     * Same as QuickAdapter#QuickAdapter(Context,int) but with     * some initialization data.     *     * @param data A new list is created out of this one to avoid mutable list     */    public MultiItemQuickAdapter(List<RecyclerItem> data) { super(data);        addItemType(0, R.layout.view_multiltem_def_item);        addItemType(1,R.layout.view_list_item);        addItemType(2,R.layout.view_home_list_item);    } @Override    protected void convert(BaseViewHolder helper, RecyclerItem item) { switch (helper.getItemViewType()){ case 0: helper.setText(R.id.multiltem_def_tv,"悯农---唐代诗人李绅");                break;            case 1: helper.setText(R.id.list_item_title_tv,item.getTitle()) .setText(R.id.list_item_content_tv,item.getContent());                break;            case 2: helper.setText(R.id.content_text_tv,item.getTitle() + item.getContent());                break;        } } }

    4. 实现类MultiItemQuickActivity

    public class MultiItemQuickActivity extends BaseRecyclerViewActivity { private MultiItemQuickAdapter multiItemQuickAdapter;    @Override    protected int getLayoutResId() { return super.getLayoutResId();    } @Override    protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState);        titleNameTv.setText("BaseMultiItemQuickAdapter实现自定义item");        multiItemQuickAdapter = new MultiItemQuickAdapter(getListData(20));        multiItemQuickAdapter.openLoadAnimation(BaseQuickAdapter.SLIDEIN_RIGHT);        recyclerView.setAdapter(multiItemQuickAdapter);    } @Override    protected void onRefreshComplete() { multiItemQuickAdapter.addData(0,getListData(3));        recyclerView.scrollToPosition(0);    } }

    效果图如下:

    转载请注明原文地址: https://ju.6miu.com/read-4441.html

    最新回复(0)