RecyclerView
来源:互联网 发布:淘宝评论图片福利2000 编辑:程序博客网 时间:2024/06/06 01:51
RecyclerAdapter : 支持下拉刷新,上拉加载,添加 Header,Footer
MultiTypeAdapter : 针对复杂数据类型的数据列表
使用方法
gradle 依赖
compile 'cn.lemon:RefreshRecyclerView:0.1.7'
xml 布局文件
<cn.lemon.view.RefreshRecyclerView android:id="@+id/recycler_view" android:layout_width="match_parent" android:layout_height="wrap_content" app:refresh_able="true" app:load_more_able="false"/>
java 代码
mRecyclerView = (RefreshRecyclerView) findViewById(R.id.recycler_view); mRecyclerView.setSwipeRefreshColors(0xFF437845,0xFFE44F98,0xFF2FAC21); mRecyclerView.setLayoutManager(new LinearLayoutManager(this)); mRecyclerView.setAdapter(mAdapter); mRecyclerView.setRefreshAction(new Action() { @Override public void onAction() { getData(true); } }); mRecyclerView.setLoadMoreAction(new Action() { @Override public void onAction() { getData(false); page++; } }); mAdapter.setHeader(textView); //添加 Header mAdapter.setFooter(footer); //添加 Footer
RecyclerAdapter
针对相同数据类型列表,可添加 Header,Footer
自定义 Adapter 应该继承 RecyclerAdapter,如:
class CardRecordAdapter extends RecyclerAdapter<Consumption> { public CardRecordAdapter(Context context) { super(context); } @Override public BaseViewHolder<Consumption> onCreateBaseViewHolder(ViewGroup parent, int viewType) { return new CardRecordHolder(parent); }}
MultiTypeAdapter
复杂数据类型列表,没有 Header,Footer 的概念,每个 Item 对应一个 ViewHolder
private MultiTypeAdapter mAdapter; mAdapter.add(ImageViewHolder.class, getImageVirtualData()); mAdapter.addAll(TextViewHolder.class, getTextVirtualData()); mAdapter.addAll(TextImageViewHolder.class, getTextImageVirualData()); mAdapter.addAll(CardRecordHolder.class, getRecordVirtualData());
ViewHolder
自定义 ViewHolder 需继承 BaseViewHolder,如:
class CardRecordHolder extends BaseViewHolder<Consumption> { //当使用 MultiTypeAdapter 时,务必加上此构造方法 public CardRecordHolder(ViewGroup parent) { super(parent, R.layout.holder_consume); } @Override public void setData(Consumption object) { super.setData(object); name.setText("Demo"); //UI 绑定数据 } @Override public void onInitializeView() { super.onInitializeView(); name = findViewById(R.id.name); //初始化 View } @Override public void onItemViewClick(Consumption object) { super.onItemViewClick(object); //点击事件 } }
注意:MultiTypeAdapter 的 ViewHolder 的构造函数保证能反射时获取,应该写成静态或者 public 的单独类
详细用法请看 Demo
注意事项
依赖了其他库
compile 'com.android.support:recyclerview-v7:23.4.0' compile 'com.android.support:support-annotations:23.4.0'
样例图:
demo地址:http://download.csdn.net/detail/noteschapter/9732812
0 0
- RecyclerView
- RecyclerView
- RecyclerView
- RecyclerView
- RecyclerView
- RecyclerView
- RecyclerView
- RecyclerView
- RecyclerView
- RecyclerView
- RecyclerView
- RecyclerView
- RecyclerView
- RecyclerView
- RecyclerView
- RecyclerView
- RecyclerView
- RecyclerView
- 内核链表操作解析
- 微信小程序
- quartz动态添加、更新、删除定时任务
- 关于机器学习的一点看法
- [项目构建]babasport 分页的使用及解析.
- RecyclerView
- uvision不连接硬件使用模拟器调试STMF32F10X
- eclipse无线调试方法备忘
- 实用资源
- float和double的精度与范围计算
- android获取当前活动(context)
- centos安装robotframework及vim语法高亮
- IM服务器的架构
- 顶峰app:决定价格的四大因素