Android中的可扩展ListView

时间:2015-03-13 09:16:30

标签: android listview expandablelistview

我正在尝试创建Expanable listview。其中有菜单的格式 - 子菜单和子菜单的子菜单,然后是项目。此外,很少菜单没有子菜单。

所有这些都在导航抽屉(侧面菜单)......

我正在做这样的事情:

enter image description here

问题是:

  1. 我如何实现这种设计? Expandable Listview是否有助于实现这一目标?

  2. 还有其他任何建议吗?

  3. 谢谢!

1 个答案:

答案 0 :(得分:0)

您需要做的是创建某种树数据结构并存储您的项目。

节点将是您的部分和子部分,同时生成实际数据。这将允许您跟踪每个项目的可见性状态(基本上,如果它处于展开或折叠部分)

然后创建一个包含2个视图类型的适配器:CategoryItem。 其getItemViewType方法应为每个Item返回leaf类型,为每个Category返回node。 其getCount应返回所有部分+子部分+项目的总计数。 它的getView应该根据它的类型返回一个实际的视图,但重要的是检查它是否包含在扩展的(!并且也可见 - 你需要递归检查它)部分并相应地设置其visibilityVISIBLEGONE。 它的onItemClicked应该在展开和展开之间切换状态。一个Sections对象应该有一个方法能够告诉你它是否被展开以及它是否可见(如果父展开,或者顶级,...)

很抱歉这里没有代码,这应该可以帮助你理解,我急着写一些例子(它需要很多代码)