【问题标题】:can you put an expandable list within an expandable list你能把可扩展列表放在可扩展列表中吗
【发布时间】:2015-11-04 14:24:08
【问题描述】:
是否可以在可扩展列表中创建可扩展列表
我正在制作一个食谱应用程序,并且我有三个相同类型的可扩展列表 - 维生素、矿物质和宏量营养素通过 android studio 的可扩展列表视图创建
是否可以将这三个可扩展列表放在名为营养的可扩展列表下,如果可以,您能否简要概述一下如何取悦。提前致谢
【问题讨论】:
标签:
java
android
expandablelistview
expandablelistadapter
【解决方案1】:
简短的回答,是的,你可以,但你真的不应该。
我之前尝试过,但结果并不好,我不记得确切的原因,但是当尝试在不同适配器内布局视图时,触摸侦听器和度量传递之间会出现冲突,但计算不正确.
您可以在网络上找到许多自定义 ExpandableList 试图做您想做的事情,但我发现它们也有类似的问题。
我最终做的是构建自己的可扩展列表视图。如果你查看 Android 的 ExpandableListView 和 ExpandableListAdapter 的源代码,你会发现它基本上是
- 只是一个常规的列表视图
- 可见项目列表
- 数据源的异步过滤器
- 一些元数据来判断它是孩子还是组,展开或折叠等
因此,如果您的所有项目都已折叠,则可见列表仅包含组项目。
展开一个组项,异步过滤器被触发,并用组项和展开的组项的子项填充可见列表。
根据元数据,它会调用 getGroupView 或 getChildView。
因此,如果您愿意,可以尝试自己编写。
我为我写的 ExpandableList 写了一篇博文,理论上它确实可以进行无限级别的扩展。 NLevelExpandableListView