XAdapter 是一个对 Android RecyclerView Adapter 的轻量级封装库,基于kotlin特性,可以做到
。
选择操作初始化配置
setOnItemSelectListener参数说明
- id 指定触发点击事件的ViewId,不传则为整个item
- permittedTypes 指定支撑选择操作的itemViewType
adapter.setOnItemSelectListener(id,permittedTypes) { data, position, index, fromUser ->
//设置选择事件,并监听选择操作
}.setOnSelectAllListener { selectedCache, isSelectedAll ->
//监听全选状态
}
.setMaxSelectCount(9)//设置最大可选数量
.isAutoCancel(false)//设置是否允许自动取消选中状态
.isAllowCancel(true)//设置是否允许用户点击取消选中,非用户点击不受影响
如果希望设置为单选,可直接使用扩展方法
//等效于同时设置如下方法:
//adapter.setMaxSelectCount(1)
//adapter.isAllowCancel(false)
adapter.singleSelect()
动态操作方法
/**
* 修改item选择状态
* @param position
* @param isSelect 是否选择
* @param fromUser 选择事件是否由用户发起的
* @return 选中索引
*/
fun setSelectAt(position: Int, isSelect: Boolean, fromUser: Boolean = false, payload: Any? = null): Int
/**
* 设置指定 item 为选中状态
* @param data
* @param isSelect 是否选择
* @param fromUser 选择事件是否由用户发起的
* @return 选中索引
*/
fun setSelect(data: D, isSelect: Boolean, fromUser: Boolean = false, payload: Any? = null): Int
/**
* 是否已经全选
* @return 所有item都选中返回 true ,否则返回 false
*/
fun isSelectAll(): Boolean
/**
* 全选
*/
fun selectAll(payload: Any? = null): Int
/**
* 取消全选
*/
fun deselectAll(payload: Any? = null): Int
/**
* 获取选中的数据
* @return 被选中的数据集合
*/
fun getSelectedList(): MutableList<D>
/**
* 指定索引下的item是否被选中
* @param position
* @return
*/
fun isSelectedAt(position: Int): Boolean
/**
* 指定数据是否被选中
* @param data
* @return
*/
fun isSelected(data: D): Boolean
/**
* 获取选中的序号,从0开始,-1表示未选中
*/
fun getSelectedIndexAt(position: Int): Int
/**
* 获取选中的序号,从0开始,-1表示未选中
*/
fun getSelectedIndex(data: D): Int