将子项放在ExpandableListView中的标题之上

时间:2016-10-05 14:39:07

标签: android listview

我试图将孩子放在标题顶部的expandableListView中,这样当用户点击某个项目时,子项就显示在它上面而不是它下面。

知道怎么可能吗?

提前感谢。

2 个答案:

答案 0 :(得分:1)

看看这堂课:

platform_frameworks_base/ExpandableListConnector.java at master · android/platform_frameworks_base

这是一个包私有类,因此您无法直接使用它,但您可以检查它以查看它是如何工作的。

事实证明ExpandableListView实际上是ListView,其中适配器的包装方式是将组和子项“展平”为单个一维列表。 ExpandableListConnector是将群组和子项映射到其展平位置的类。

通过使用带有自定义适配器的直接ListView,您也可以执行相同的操作。在您展平列表的情况下,不要将子视图置于组视图下方,而是将子视图放在组视图上。

所以BaseExpandableListAdapter命令如下:

    group1       0
       child1    1
       child2    2

您可以按照以下顺序创建适配器:

       child1    0
       child2    1
    group1       2

此外,当用户展开并折叠组时,您需要更新适配器状态以将子项添加/删除到列表中并重新计算所有展平位置。

答案 1 :(得分:0)

使用Android的ExpandableListView类是不可能的。您必须创建一个可以执行此操作的自定义类。