完全展开的嵌套列表 - Android

时间:2014-01-10 12:59:09

标签: android listview

我正在尝试为Android应用创建嵌套列表视图。我所需要的是像

这样的东西
                     nested list entry 1
Outer List Entry1    nested list entry 2
                     nested list entry 3

                      nested list entry 1
Outer List Entry 2    nested list entry 2
                      nested list entry 3

我有一个外部列表,其中有两个条目,然后有一个嵌套列表视图,其中包含详细条目(如果您想象一个日历,其中包含一周中的几天作为外部列表,并且每天都有一个如上垂直列出的0个或更多个约会的列表。此外,我希望嵌套列表项可以像顶层列表一样被点击/突出显示。

我发现找到嵌套列表视图的大多数信息都是使用ExpandableListViews的建议 - 我实现了它,但使用它看起来有点难看,因为它显然不是同一个目的(我不想要任何可扩展的东西) - 所有东西都应该完全展开并且不可折叠 - 也找不到上面水平布局而不是垂直布局的信息 - 但我认为这可能相对容易?)。

我还在这里使用了选定的答案:android nested listview在演示方面工作正常,但不为嵌套列表中的每个单独项目提供相同的列表滚动/突出显示/点击行为。

有人可以提出任何替代方案吗?曾经使用上述任何一种实现了类似的布局?


更新

我希望列表的布局实际上就像上面的文本表示一样 - 试图澄清我想要的布局,这里是一个图像(是的,我知道我可能应该为图表的蹩脚截图进行投票在开放办公室:)

enter image description here

所以你可以看到,我实际上希望屏幕看起来像那样 - 父/外部列表是一个时间段列表(在这种情况下是一周中的几天,但它可能是一天中的几小时等),对于该外部列表中的每一行,我希望内部列表(给定时间段的约会)显示为与父级水平对齐的嵌套列表。

2 个答案:

答案 0 :(得分:1)

更新的答案: 如果你想要一个表,那么你应该将它拆分为Fragments。 根视图应该是ScrollView。 孩子必须是水平的LinearLayout 每个下一列都是片段。 每个Fragment容器都应该有一些重量。 每个Fragment的根视图应该是垂直的LinearLayout 确保具有天数项目的Frament具有正好三个“任务”项目高度的高度。 在dimen.xml中对它们进行硬编码。 为方便起见,请设置可以设置ListAdapter的每个Fragment的LinearLayout扩展类。基于ListAdapter填充每一行。 这样,您就可以获得具有固定内容的列表。

如果您不想灵活,可以不使用碎片。 添加新列只是封装逻辑的Fragments的问题。

答案 1 :(得分:1)

要使ExpandableListView不崩溃,请使用

expandableList.setOnGroupClickListener(new OnGroupClickListener() {
  @Override
  public boolean onGroupClick(ExpandableListView parent, View v,
                              int groupPosition, long id) { 
    return true; // This way the expander cannot be collapsed
  }
});