11

我在 LinearLayout 中有几个 ListView。它按天列出事物,所以我有一个 TextView,其中包含“Sunday:”,后跟一个项目列表,然后是一个“Monday”TextView,等等。效果很好,但不适合屏幕。所以我添加了一个 ScrollView 作为 LinearLayout 的父级。现在它滚动了,但 ListView 都有 2 个条目的空间,无论它们有 0 个还是 3 个条目。添加 ScrollView 父级导致 ListViews 无法动态调整大小。在列表适配器填充了它们的视图之后,我尝试在 ScrollView 上调用 requestLayout() ,但这并没有做任何事情。有任何想法吗?

编辑:从http://www.anddev.org/viewtopic.php?p=25194和其他链接看来,ScrollView 中的 ListViews 处理不正确。任何人对实施列表列表有很好的建议吗?

4

2 回答 2

15

我对这个话题也很感兴趣,所以我做了一些研究。第一:永远不要将 ListView 放在 ScrollView 中(正如您自己发现的那样)。不幸的是,谷歌搜索这个问题并没有找到任何解决方案,所以我从上面的评论中尝试了我的建议。

我实现了一个自定义 ListAdapter 并将 ListViews 放入一个父 ListView。这不起作用(导致与 ScrollView 相同的问题)。在 freenode 上与官方 android-irc #android-dev 上的人交谈时,他们告诉我将 ListViews 放入 ListView 与将它们放入 ScrollView 一样糟糕甚至更糟。不幸的是,他们也无法帮助我解决这个问题。

似乎只有一种方法可以实现您想做的事情;查看这个类似问题的答案Scrolling with Multiple ListViews for Android。这个想法是通过自定义适配器将所有 ListView 合并为一个,并在条目之间插入某种标题。这是绝对可行的,但可能需要一些特别的努力。

于 2009-10-06T20:45:22.130 回答
6

我知道现在回答这个问题已经太晚了,但仍然 - 如果遇到类似问题,它可能对到达这里的其他人有用。

我建议您为此使用 Expandable ListView。它会解决你所有的问题。您可以将主/父名称作为周名称,当您展开它时,您将获得该特定日期/周/任何时间的条目列表。此外,您不必担心滚动,因为它由 android 处理:)

如果您尝试这样做,请让我知道这是否适合您的问题尝试在 Expandable ListView 上搜索示例。

编辑:在这里查看示例 - http://mylifewithandroid.blogspot.com/2008/05/expandable-lists.html

于 2010-10-04T04:43:51.690 回答