
最近写的一个商城APP,布局比较复杂,其中有需要使用到Recyclerview嵌套RecyclerView的地方。 另外,本例子使用的Adapter框架为BaseQuickAdapter 。如果有使用到其他的Adapter框架需要自己适当修改。
BaseQuickAdapter 框架 Github地址: https://githubcom/CymChad/BaseRecyclerViewAdapterHelper
红色部分是一个Recyclerview 蓝色部分又是一个RecyclerView。Adapter加载的数据格式应该是List<data>,其中data又是一个List。当用户点击内层recyclerview时需要获取第一层的List的Position又要获取第二层的List的Positon。为了实现该效果,我们有两个方法,先介绍第一种方法:
在外层RecyclerView的Adapter中添加接口,供Activity或Fragment使用:
在Activity或Fragment中填充外层RecyclerView数据:
然后介绍第二种方法,该方法主要是根据控件嵌套控件的点击事件触发逻辑去实现获取内层数据的效果,但是也需要在外层Recyclerview的Adapter中添加接口供Activity使用:
在Activity或Fragment中填充外层RecyclerView数据:
PS:
Recyclerview嵌套Recyclerview中,若在首个recyclerview中的onBindViewHolder方法里(若使用了BRAH,则是在convert()方法中),通过addOnItemTouchListener设置了第二个recyclerview的点击事件,则需要在onBindViewHolder()添加判断条件,防止外层Activity或Fragment中,调用第一个Recyclerview的notifyDataSetChanged()方法后,重复设置点击事件导致子Recyclerview的点击事件被重复触发。
以上就是关于RecyclerView嵌套RecyclerView的子控件点击事件获取全部的内容,包括:RecyclerView嵌套RecyclerView的子控件点击事件获取、、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)