3

我有一个带有嵌套列表视图的 LinearLayout,如下所示:

<LinearLayout ... >
    <LinearLayout>
    </LinearLayout>
    <ListView>
    </ListView>
</LinearLayout>

问题是列表视图拥有滚动条(因此只有列表视图中的内容是可滚动的),但我实际上希望父 LinearLayout 拥有滚动条(因此使整个内容可滚动)。

在 ScrollView 中包装父 ListView 尚未成功,因为 ScrollView 无法识别 ListView 高度(看起来像是在运行时呈现的)

谢谢

编辑:已解决我的完美解决方案是使用MergeAdapter,正如 Barak 所建议的那样

4

3 回答 3

2

您可以使用 CommonWares MergeAdapter,它允许您定义视图和列表适配器,将它们倒入 MergeAdapter 并得到一个列表适配器,其中包含您放入的所有内容,并且它作为一个列表滚动。

我给出的关于 MergeAdapter 的先前回答是这里

于 2012-05-21T16:18:40.767 回答
0

只要列表视图中没有太多项目,您就可以将列表视图替换为表格视图。您仍然可以以与列表视图相同的方式将子视图与 tableview 一起使用,只是无法以与 listview 相同的方式对其进行数据绑定,并且项目也不会回收。

于 2012-05-21T16:16:57.027 回答
0

由于列表视图旨在包含比可以显示更多的项目,因此高度永远不会超过屏幕尺寸(最佳情况),这是控件的意图,但我想你可以强制它更大,这通常看起来是个坏主意有很多原因。

我怀疑你应该做的是创建一个自定义列表视图适配器,并根据列表中的位置创建你想要的视图,这将允许所有项目像你想要的那样滚动。

每行具有不同视图类型的列表视图

这可能会也可能不会起作用,具体取决于您到底要做什么,否则您可能只想将视图添加到滚动视图中的线性视图,而不是列表视图。

它仅取决于用例(列表视图中有多少项目、内存问题等)以及其他视图的目的是什么。

于 2012-05-21T16:23:47.433 回答