android RecyclerView嵌套 RecyclerView 子item 和 父item点击事件如何处理_recyclerview嵌套 recyclerview 点击事件

        this.setOnChildItemChildClick(view, index, position)
    }

    holder.setText(R.id.storeName, item.storeName)
    holder.getView<CheckBox>(R.id.storeCheckBox).isChecked = item.check!!
    holder.getView<RecyclerView>(R.id.goodsItemList).run {
        layoutManager = LinearLayoutManager(this.context)
        adapter = goodsListAdapter
        isNestedScrollingEnabled = false
    }
    goodsListAdapter.setList(item.goodsList)
}

protected open fun setOnChildItemChildClick(v: View, parent: Int, position: Int) {
    mOnChildItemChildClickListener?.onItemChildClick(this, v, parent, position)
}


open fun setOnChildItemChildClickListener(listener: OnChildItemChildClickListener) {
    this.mOnChildItemChildClickListener = listener
}

}


## 子adapter



class StoreGoodsListAdapter(layoutResId: Int, data: MutableList): BaseQuickAdapter<CartGoodsBean, BaseViewHolder>(layoutResId, data) {
private var imageLoader: ImageLoader = CoilUtil.getImageLoader()

override fun convert(holder: BaseViewHolder, item: CartGoodsBean) {
    holder.getView<ImageView>(R.id.cartGoodsImg).load(item.imgUrl, imageLoader ) {
        crossfade(true)
        placeholder(R.drawable.default_img)
        error(R.drawable.default_img)
    }

    holder.getView<CheckBox>(R.id.goodsCheckBox).isChecked = item.check!!
    holder.setText(R.id.cartGoodsDes, item.description)
    holder.setText(R.id.cartGoodsPrice, "¥${item.price}")
}

}


## listener



open interface OnChildItemChildClickListener {
fun onItemChildClick(adapter: BaseQuickAdapter<*, *>, view: View, parentPosition: Int, position: Int)
}


## 页面上监听



//点击店铺前的checkbox
cartGoodsListAdapter.setOnItemChildClickListener { _, view, position ->
when (view.id) {
R.id.storeCheckBox -> checkAllByStore(position)
}
}
//点击店铺中商品前的checkbox
cartGoodsListAdapter.setOnChildItemChildClickListener(object : OnChildItemChildClickListener {
override fun onItemChildClick(
adapter: BaseQuickAdapter<*, *>,
view: View,
parentPosition: Int,
position: Int,
) {
when (view.id) {
R.id.goodsCheckBox -> checkGoods(parentPosition, position)
}
}
})


### 文末


我总结了一些**Android核心知识点**,以及一些最新的大厂面试题、知识脑图和视频资料解析。


需要的**小伙伴直接点击文末小卡片免费领取**哦,以后的路也希望我们能一起走下去。**(谢谢大家一直以来的支持,需要的自己领取)**


**Android学习PDF+架构视频+面试文档+源码笔记**


部分资料一览:


* **330页PDF Android学习核心笔记(内含8大板块)**


![](https://img-blog.csdnimg.cn/img_convert/331eaabc081b52717421bd807753bed0.png)


![](https://img-blog.csdnimg.cn/img_convert/0f8facd13d0b58a0a2f5a87f0f2d31db.png)


* **Android学习的系统对应视频**


![](https://img-blog.csdnimg.cn/img_convert/5e61a2e2df103fd163d307b98649f690.png)


* **Android进阶的系统对应学习资料**


![](https://img-blog.csdnimg.cn/img_convert/3ca142405465e3f70af596f748fc5863.png)


* **Android BAT大厂面试题(有解析)**


![](https://img-blog.csdnimg.cn/img_convert/b6b6009628ed29d2a5aa0840ab0affc1.png)


**领取地址:**


![](https://img-blog.csdnimg.cn/c92ed924b72c46ffa6c344fcffdc23b7.png)






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值