RecyclerViewAdapter 使用教程
来源:互联网 发布:太原java薪资待遇如何 编辑:程序博客网 时间:2024/06/04 20:03
1. gradle 添加依赖
compile 'com.asange.recyclerviewadapter:lib_recyclerview_adapter:1.0.5'最新版本 参考:点击打开链接
2.项目介绍
为了简化recylerview 写适配器的复杂度,有不想用其他第三方依赖 太多组件,所以写了这个开源项目,不足40k,极大的减少了Apk的体积;
特性:
1.简单,体积小
2.可以自由添加header footer
3. 事件绑定比较完善
主要分为2个类:com.asange.recyclerviewadapter.BaseRecyclerAdapter与com.asange.recyclerviewadapter.MultiRecyclerAdapter(多布局展示,如聊天左右item布局)
3. 实例:
继承BaseRecylerAdapter 需要复写2个方法:
package com.asange.recyclerviewadapter.demo;/** * Description * Company Beijing icourt * author youxuan E-mail:xuanyouwu@163.com * date createTime:2017/10/4 * version 2.1.0 */public class User { private int age; private String name; private boolean isItemSelected; public User(int age, String name) { this.age = age; this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; }}
package com.asange.recyclerviewadapter.demo;import android.support.annotation.Nullable;import android.view.View;import android.widget.Button;import android.widget.CheckBox;import android.widget.TextView;import com.asange.recyclerviewadapter.BaseRecyclerAdapter;import com.asange.recyclerviewadapter.BaseViewHolder;import com.asange.recyclerviewadapter.OnItemClickListener;import com.asange.recyclerviewadapter.SelectableBaseAdapter;/** * Description * Company Beijing icourt * author youxuan E-mail:xuanyouwu@163.com * date createTime:2017/10/4 * version 2.1.0 */public class UserAdapter extends SelectableBaseAdapter<User> implements OnItemClickListener { public UserAdapter() { this.setOnItemClickListener(this); } @Override public int bindView(int viewType) { return R.layout.item_user; } @Override public void onBindHolder(BaseViewHolder holder, @Nullable User user, int index) { if (user == null) return; TextView userNameTv = holder.obtainView(R.id.userNameTv); TextView userAgeTv = holder.obtainView(R.id.userAgeTv); Button updateBtn = holder.obtainView(R.id.updateBtn); Button delBtn = holder.obtainView(R.id.delBtn); Button clickBtn = holder.obtainView(R.id.clickBtn); userNameTv.setText("name:" + user.getName()); userAgeTv.setText("age:" + user.getAge()); holder.bindChildClick(updateBtn) .bindChildClick(delBtn) .bindChildClick(clickBtn); CheckBox userCb = holder.obtainView(R.id.userCb); userCb.setChecked(user.isItemSelected()); } @Override public void onItemClick(BaseRecyclerAdapter adapter, BaseViewHolder holder, View itemView, int index) { }}
1.bindView(int viewType) 需要返回一个view的资源id,参数viewType 可以分类别返回不同的布局id,默认viewType=0,需要扩张则需要复写getViewType 方法
2.onBindHolder(BaseViewHolder holder,@NullableUser user, intindex) 方法
是初始化item布局的方法,t对应着范型的实体,index 从0开始的位置,非adapter的pos,因为可能包含header
/** * 初始化item * * @param holder * @param t * @param index 相对于List的位置 */ public abstract void onBindHolder(BaseViewHolder holder, @Nullable T t, int index);
是初始化item布局的方法,t对应着范型的实体,index 从0开始的位置,非adapter的pos,因为可能包含header
获取item布局的child
默认item的更根布局已经绑定了onItemClick与onItemLongClick
TextView userNameTv = holder.obtainView(R.id.userNameTv);
child的点击和长按 则需要主动绑定:
holder.bindChildClick(updateBtn) .bindChildLongClick(updateBtn);
点击事件:
public void setOnItemClickListener(OnItemClickListener l) { this.onItemClickListener = l; } public void setOnItemLongClickListener(OnItemLongClickListener l) { this.onItemLongClickListener = l; } public void setOnItemChildLongClickListener(OnItemChildLongClickListener l) { this.onItemChildLongClickListener = l; } public void setOnItemChildClickListener(OnItemChildClickListener l) { this.onItemChildClickListener = l; }
1. OnItemClickListener 适配器item 点击事件 也就是item 根布局的点击事件
2.OnItemLongClickListener 适配器item 长按事件 也就是item 根布局的长按事件
3. OnItemChildClickListener 适配器item child 点击事件 是item布局中子view的点击事件
4.OnItemChildLongClickListener 适配器item child 长按事件 是item布局中子view的长按事件
4.OnItemChildLongClickListener 适配器item child 长按事件 是item布局中子view的长按事件
demo 点击这里
运行效果:
阅读全文
0 0
- RecyclerViewAdapter 使用教程
- RecyclerViewAdapter
- RecyclerViewadapter
- 万能RecyclerViewAdapter
- 万能的RecyclerViewAdapter
- RecyclerViewAdapter封装(上)
- Databinding之RecyclerViewAdapter
- 带标题的RecyclerViewAdapter
- 针对DataBinding的RecyclerViewAdapter
- Android 一起来封装一个 RecyclerViewAdapter
- Android 可分组的RecyclerViewAdapter
- 含有HeaderView和FooterView的RecyclerViewAdapter
- 灵活且强大的RecyclerViewAdapter源码分析
- 灵活且强大的RecyclerViewAdapter源码分析
- 灵活且强大的RecyclerViewAdapter源码分析
- 灵活且强大的RecyclerViewAdapter源码分析
- 福利:打造一个万能的RecyclerViewAdapter
- 灵活且强大的RecyclerViewAdapter源码分析
- 初识Hibernate之关联映射(二)百度_合作
- springMV配置日志log4j,以及在linux服务器中查询日志
- ctf web常用小姿势点
- 一步一步教你使用CodeFisrt
- E周安全:黑客攻防对弈 探索下一代安全
- RecyclerViewAdapter 使用教程
- 基本的jQuery选择器
- HDPCD-Java-复习笔记(6)
- Vue学习之 生命周期钩子
- Git冲突:commit your changes or stash them before you can merge.
- Leetcode算法学习日志-452 Minimum Number of Arrows to Burst Balloons
- 低功耗蓝牙UUID三种格式转换
- jQuery下Ajax 执行回调函数的原理success、error、complete
- printf打印边框,很洋气