XAdapter 选择操作(Android RecyclerView)

XAdapter 是一个对 Android RecyclerView Adapter 的轻量级封装库,基于kotlin特性,可以做到 \color{red}{一个方法实现一个功能}

XAdapter 目录

选择操作初始化配置

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

XAdapter 目录

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容