按照连接实现
因为他设定了子条目列表的名称所以要在父列表继承BaseExpandNode()后,在实体类里加入
fun addChildNode(){
if (childNode == null){
childNode = ArrayList<BaseNode>()
}
childList?.forEach {
childNode?.add((it as BaseNode))
}
}
整体实体类效果就是这个样子的(如下)
//父列表条目
data class GroupModel(
val title: String? = "",
val childList<BizModel>?,
override var childNode: MutableList<BaseNode>?
) : BaseExpandNode() {
fun addChildNode(){
if (childNode == null){
childNode = ArrayList<BaseNode>()
}
childList?.forEach {
childNode?.add((it as BaseNode))
}
}
}
//子列表条目
data class BizModel(
var nodeName: String? = null,//节点名称
override var childNode: MutableList<BaseNode>?= null,
):BaseNode()
然后请求接口拿到数据后,调用一次addChildNode()方法,让数据进去。
剩下的写法就和他的demo写法一致了
遇到的坑:
1.父条目展开时,子列表是以插入adapter.data的方式实现的
2.getAdapter()?.adapterPosition/layoutPosition 这两个获取到的都是当前条目在适配器data的下标位置
如下图:

我觉得这是坑的原因是,我需要获取到当前父列表下标和子列表下标 ,以上为踩坑记录
本文介绍了如何使用BaseQuickAdapter在Android中实现折叠/展开/收缩功能,详细阐述了实体类的设置以及接口数据的处理。在实际操作中遇到的坑包括:父条目展开时子列表通过插入adapter.data实现,以及getAdapter()?.adapterPosition和layoutPosition只能获取数据在适配器中的位置,而非父子列表的下标。这是一篇关于Android适配器使用的实践和问题总结。
1万+

被折叠的 条评论
为什么被折叠?



