将整个 activity 布局包装在 ScrollView 中

Wrapping the whole activity layout in a ScrollView

我有一个 activity 布局如下:

__________
|TextView|
|        |
|ListView|
|........|
|........|
|........|
|........|
|........|
|........|    
|TextView|
|TextView|
|********|
----------

所有视图都是动态填充的,因此,可以有不同的大小。当然,所有这些不能一下子全部装进屏幕。我希望 activity 的所有内容都可以滚动 - 从上到下。因此,我打算将所有内容都打包成一个 ScrollView.

但是,当我尝试这样做时,只显示 ListView 中的一项。我该如何解决这个问题?

更新:

向 ListView 添加页眉和页脚布局最终解决了我的问题。不过没有尝试其他答案。

此外,在将适配器设置为 ListView 之前,我必须添加 header/footer。在适配器更新时搞砸 UI 之后添加它们。

不要将 ListView 放在 ScrollView 中。相反,将 ListView 中的各个项目放入由 ScrollView 滚动的 LinearLayout 中。

ScrollView 在将其他滚动元素放入其中时效果不佳。

更好的解决方案是将列表视图上方的所有内容移动到一个视图中,作为 ListView 的页眉加载,将 ListView 下面的所有内容移动为另一个视图,作为 ListView 的页脚加载。这样一切都可以滚动,并且您不会像将列表视图包装在滚动视图中那样发生触摸冲突。

Add header

Add footer

您可以在此站点上找到许多针对不推荐(但很常见)"ListView inside a ScrollView" 问题的解决方案。例如: one, two, three(三个类似于Francesc的建议), 以及许多其他解决方案,如果这些解决方案不适合您...

创建一个线性布局来存储列表视图的每个项目并使该布局能够滚动我认为这是最好的方法。