Android ScrollView 布局问题

Posted

技术标签:

【中文标题】Android ScrollView 布局问题【英文标题】:Android ScrollView layout problem 【发布时间】:2010-12-04 08:27:26 【问题描述】:

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

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

【问题讨论】:

你能发布你的布局xml吗?您是否在 ListViews 中设置了 android:layout_ 或类似内容? 我目前无权访问布局。LinearLayout 内的所有视图都有 layout_,LinearLayout 和 ScrollView 有 layout_(试过 wrap_content线性布局)。注释掉 ScrollView,一切都正确布局,但离开屏幕.. 将您的 ListViews 放入 ListView 吗? :) 如果我理解正确,您想在 TextView 中列出所有工作日列表,并在其下方添加 ListView。这应该可以在自定义适配器中实现。请参阅我的问题***.com/questions/1505751/… 的答案,它描述了如何扩展 ResourceCursorAdapter。也许这可以帮助您构建一个适配器,用您的工作日 ListViews+Caption 填充 ListView。 【参考方案1】:

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

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

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

【讨论】:

为什么不应该将列表视图放在滚动视图中?【参考方案2】:

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

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

如果您尝试这样做,请告诉我这是否能解决您的问题 尝试在 Expandable ListView 上搜索示例。

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

【讨论】:

真的,可展开的列表视图是要走的路

以上是关于Android ScrollView 布局问题的主要内容,如果未能解决你的问题,请参考以下文章

android ScrollView+GridView GridView不滚动

Android ScrollView 布局问题

Android ScrollView 布局问题

Android 布局问题,一个 ScrollView 中的几个 ListView

无法在 SlidingUpPanelLayout Xamarin Android 中使用 ScrollView 布局

带有 ScrollView 的 Android Studio 约束布局