BaseRecyclerViewAdapterHelper之BaseSectionQuickAdapter实现分组功能
来源:互联网 发布:js基本语法 编辑:程序博客网 时间:2024/05/23 13:52
1. 一个实体类RectclerSectionItem
public class RecyclerSectionItem extends SectionEntity { private String title; private String content; public RecyclerSectionItem(boolean isHeader, String header) { super(isHeader, header); } public RecyclerSectionItem(boolean isHeader, String header, String title, String content) { super(isHeader, header); this.title = title; this.content = content; } 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; }}
2. 俩个item视图文件(view_list_item和view_home_list_item,同上)
3. 适配器SectionQuickAdapter
public class SectionQuickAdapter extends BaseSectionQuickAdapter<RecyclerSectionItem,BaseViewHolder> { /** * Same as QuickAdapter#QuickAdapter(Context,int) but with * some initialization data. * * @param layoutResId The layout resource id of each item. * @param sectionHeadResId The section head layout id for each item * @param data A new list is created out of this one to avoid mutable list */ public SectionQuickAdapter(int layoutResId, int sectionHeadResId, List<RecyclerSectionItem> data) { super(layoutResId, sectionHeadResId, data); } @Override protected void convertHead(BaseViewHolder helper, RecyclerSectionItem item) { helper.setText(R.id.content_text_tv, item.header); } @Override protected void convert(BaseViewHolder helper, RecyclerSectionItem item) { helper.setText(R.id.list_item_title_tv, item.header) .setText(R.id.list_item_content_tv,item.getTitle() + item.getContent()); }}
4. 实现类SectionQuickActivity
public class SectionQuickActivity extends BaseRecyclerViewActivity { private SectionQuickAdapter sectionQuickAdapter; @Override protected int getLayoutResId() { return super.getLayoutResId(); } @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); titleNameTv.setText("BaseSectionQuickAdapter实现分组"); sectionQuickAdapter = new SectionQuickAdapter( R.layout.view_list_item, R.layout.view_home_list_item, getSectionListData(20)); sectionQuickAdapter.openLoadAnimation(BaseQuickAdapter.SLIDEIN_RIGHT); recyclerView.setAdapter(sectionQuickAdapter); } @Override protected void onRefreshComplete() { sectionQuickAdapter.addData(0,getSectionListData(2)); recyclerView.scrollToPosition(0); } /** * 获取分组数据 * * @param count 设置要获取的数据的数量 * @return */ protected List<RecyclerSectionItem> getSectionListData(int count) { if (count == 0) return null; List<RecyclerSectionItem> newDatas = new ArrayList<>(); for (int i = 0; i < count; i++) { if (i%2 == 0) { newDatas.add(new RecyclerSectionItem(true, TimeUtils.getNowTimeString("yyyy-MM-dd"))); }else if (i%2 == 1){ newDatas.add(new RecyclerSectionItem(false, "时间:" + TimeUtils.getNowTimeString("HH:mm:ss"), "关关雎鸠,在河之洲。", "窈窕淑女,君子好逑。")); } } return newDatas; }}
效果图如下:
0 0
- BaseRecyclerViewAdapterHelper之BaseSectionQuickAdapter实现分组功能
- BaseRecyclerViewAdapterHelper开源项目之BaseSectionQuickAdapter 实现分组效果的源码学习
- RecyclerView分组之BaseRecyclerViewAdapterHelper(实现分组功能)
- BaseRecyclerViewAdapterHelper开源项目之BaseSectionQuickAdapter 实现Expandable And collapse效果的源码学习
- BaseRecyclerViewAdapterHelper之BaseItemDraggableAdapter实现拖拽功能
- BaseRecyclerViewAdapterHelper之BaseMultiItemQuickAdapter实现多级列表功能
- BaseRecyclerViewAdapterHelper开源项目之BaseQuickAdapter源码学习BaseViewHolder扩展功能的实现代码学习(四)
- BaseRecyclerViewAdapterHelper之BaseMultiItemQuickAdapter实现自定义item类型
- RecyclerView之BaseRecyclerViewAdapterHelper(一)
- BaseRecyclerViewAdapterHelper源码解读(六) 分组布局
- Hadoop之——自定义分组比较器实现分组功能
- BaseRecyclerViewAdapterHelper
- BaseRecyclerViewAdapterHelper
- java 实现数据库分组功能
- ExpandableListView实现简单分组功能
- Mongo 实现group 分组功能
- BaseRecyclerViewAdapterHelper开源项目之BaseQuickAdapter源码学习之预加载的实现(二)
- BaseRecyclerViewAdapterHelper开源项目之BaseQuickAdapter源码学习上拉加载的实现代码(三)
- ECMAScript 6入门 学习笔记
- Java synchronized详解
- Oracle 11g Release2 安装图文教程 for windows
- spring MVC接收请求体总是多一个等号
- EventBus3.0 在Android上的使用
- BaseRecyclerViewAdapterHelper之BaseSectionQuickAdapter实现分组功能
- 【洛谷 3371】【模板】单源最短路径
- 厦门某公司图像处理工程师面试
- [LeetCode]313. Super Ugly Number
- 使用Android的OpenGL编写视频播放器
- 机器学习基础(入门篇)
- 正则表达式的使用
- node中使用promise解决异步问题
- 为什么服务器大多用Linux