我正在尝试为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在演示方面工作正常,但不为嵌套列表中的每个单独项目提供相同的列表滚动/突出显示/点击行为。
有人可以提出任何替代方案吗?曾经使用上述任何一种实现了类似的布局?
更新
我希望列表的布局实际上就像上面的文本表示一样 - 试图澄清我想要的布局,这里是一个图像(是的,我知道我可能应该为图表的蹩脚截图进行投票在开放办公室:)
所以你可以看到,我实际上希望屏幕看起来像那样 - 父/外部列表是一个时间段列表(在这种情况下是一周中的几天,但它可能是一天中的几小时等),对于该外部列表中的每一行,我希望内部列表(给定时间段的约会)显示为与父级水平对齐的嵌套列表。
答案 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
}
});