离线地图的这种列表该怎么实现?

就是下图这种列表,前两个分组为单层的,其他身份的为双层的,想了好久没想通,只能来请教各位了...

图片描述

阅读 3.8k
4 个回答

github上很多expandableListView的库可以找找有没有合适的,不过单纯用recyclerView也能实现,adapter里面分3种trpe,标题(热门省份等),次标题(山东省等),具体省份。

点击扩展列表可以直接插入数据然后用adapter.notifyItemIntert()来刷新列表

我以前简单写过。自己定义一个简单的树形结构,里面记录了子节点、本节点的层数、是否要展示本节点的子节点 和本节点是否为叶节点,根据这些来判断itemType(比如 是叶节点的话点击是下载地图,非叶节点的话是展开下一级列表),不过每次点击都要触发一次notifyDataSetChanged(),我感觉不大好。

Android 打造任意层级树形控件 考验你的数据结构和设计 hongyang大神曾经写过一篇类似的文章,不过他是用的线性表存的

想了一下还是很多坑,默默坐等大神

推荐的开源recyclerview https://github.com/bignerdran...
定义树形结构
├─ItemStructure
│ ├─ItemParent
│ │ ├─ItemChildrens
│ │ │ ├─ItemChildren1
│ │ │ ├─ItemChildren2
│ │ │ ├─ItemChildren3
│ │ │ ├─.............
ItemStructure作为Item的整个结构,ItemParent作为Item可下拉的部分,ItemChildrens作为最子层可下载的内容。通过ViewType分类HeaderView、ItemParent、ItemChildrens列表

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题