BaseRecyclerViewAdapterHelper之BaseMultiItemQuickAdapter实现自定义item类型
来源:互联网 发布:php权限管理教程 编辑:程序博客网 时间:2024/06/05 18:46
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); }}
效果图如下:
0 0
- BaseRecyclerViewAdapterHelper之BaseMultiItemQuickAdapter实现自定义item类型
- BaseRecyclerViewAdapterHelper之BaseMultiItemQuickAdapter实现多级列表功能
- BaseRecyclerViewAdapterHelper开源项目之BaseMultiItemQuickAdapter 实现多类型源码学习
- BaseRecyclerViewAdapterHelper之BaseSectionQuickAdapter实现分组功能
- BaseRecyclerViewAdapterHelper之BaseItemDraggableAdapter实现拖拽功能
- RecyclerView分组之BaseRecyclerViewAdapterHelper(实现分组功能)
- RecyclerView之BaseRecyclerViewAdapterHelper(一)
- Adapter类型控件之ListView Item多布局的实现
- Qt Model/View之实现Item自定义显示
- BaseRecyclerViewAdapterHelper
- BaseRecyclerViewAdapterHelper
- BaseRecyclerViewAdapterHelper开源项目之BaseQuickAdapter源码学习之预加载的实现(二)
- BaseRecyclerViewAdapterHelper开源项目之BaseQuickAdapter源码学习上拉加载的实现代码(三)
- BaseRecyclerViewAdapterHelper开源项目之BaseQuickAdapter源码学习BaseViewHolder扩展功能的实现代码学习(四)
- BaseRecyclerViewAdapterHelper开源项目之BaseSectionQuickAdapter 实现分组效果的源码学习
- BaseRecyclerViewAdapterHelper开源项目之BaseSectionQuickAdapter 实现Expandable And collapse效果的源码学习
- RecyclerView的Item多种类型的选择之普通方法实现
- RecyclerView的Item多种类型的选择和不同样式展示之利用框架方法实现
- mutable和volatile
- 纯虚析构函数必须给出定义
- php漏洞文章收集
- opencv重映射remap( )函数
- 笔记:CSS改变webkit的浏览器滚动条样式
- BaseRecyclerViewAdapterHelper之BaseMultiItemQuickAdapter实现自定义item类型
- 嵌入式linux TCP socket编程
- Linux系统使用——文件搜素命令
- SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDRO
- IOS上 关于状态栏的相关设置(UIStatusBar)
- java 创建时间对象的时间与系统时间不一致
- tomcat 配置站点
- 机器学习(1)之梯度下降(gradient descent)
- BaseRecyclerViewAdapterHelper开源项目之BaseViewHolder源码学习