我正在尝试创建Expanable listview。其中有菜单的格式 - 子菜单和子菜单的子菜单,然后是项目。此外,很少菜单没有子菜单。
所有这些都在导航抽屉(侧面菜单)......
我正在做这样的事情:
问题是:
我如何实现这种设计? Expandable Listview是否有助于实现这一目标?
还有其他任何建议吗?
谢谢!
答案 0 :(得分:0)
您需要做的是创建某种树数据结构并存储您的项目。
节点将是您的部分和子部分,同时生成实际数据。这将允许您跟踪每个项目的可见性状态(基本上,如果它处于展开或折叠部分)
然后创建一个包含2个视图类型的适配器:Category
和Item
。
其getItemViewType
方法应为每个Item
返回leaf
类型,为每个Category
返回node
。
其getCount
应返回所有部分+子部分+项目的总计数。
它的getView
应该根据它的类型返回一个实际的视图,但重要的是检查它是否包含在扩展的(!并且也可见 - 你需要递归检查它)部分并相应地设置其visibility
到VISIBLE
或GONE
。
它的onItemClicked
应该在展开和展开之间切换状态。一个Sections对象应该有一个方法能够告诉你它是否被展开以及它是否可见(如果父展开,或者顶级,...)
很抱歉这里没有代码,这应该可以帮助你理解,我急着写一些例子(它需要很多代码)