扫码关注官方订阅号
ringa_lee
listview嵌套listview肯定要爆炸的 ,建议及早脱坑, 用ExpandableRecyclerAdapter之类的
写过3层的ListView,每层的交互&数据类型不一样。讲一下我思考过几个方式:
ListView嵌套ListView:不可取,每个二级的ListView之间无法高效复用。
ListView嵌套LinearLayout:通过点击,控制下一层级的ListView是否可见:根据场景,如果是简单的层级的LinearLayout,差不多只有1~2层的还可以考虑下,但是像你这种多层的,千万别用,因为要Inflate很多次新的布局,而且不同的二级ListView之间复用又是问题来了。
ListView点击后addView:点击某个item后,在这个item的index之后添加子数据,将界面的复用交给系统Listview组件,复用高。但是,对你的数据架构要求,而且需要手动remove。算是可以考虑的一种。
使用ExpandableListView:这个应该和你的要求非常符合!建议使用。
若你用的不是Listview,而是RecycleView,可以考虑使用楼上作者说的ExpandableRecyclerAdapter。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
listview嵌套listview肯定要爆炸的 ,建议及早脱坑, 用ExpandableRecyclerAdapter之类的
写过3层的ListView,每层的交互&数据类型不一样。
讲一下我思考过几个方式:
ListView嵌套ListView:不可取,每个二级的ListView之间无法高效复用。
ListView嵌套LinearLayout:通过点击,控制下一层级的ListView是否可见:根据场景,如果是简单的层级的LinearLayout,差不多只有1~2层的还可以考虑下,但是像你这种多层的,千万别用,因为要Inflate很多次新的布局,而且不同的二级ListView之间复用又是问题来了。
ListView点击后addView:点击某个item后,在这个item的index之后添加子数据,将界面的复用交给系统Listview组件,复用高。但是,对你的数据架构要求,而且需要手动remove。算是可以考虑的一种。
使用ExpandableListView:这个应该和你的要求非常符合!建议使用。
若你用的不是Listview,而是RecycleView,可以考虑使用楼上作者说的ExpandableRecyclerAdapter。