具有嵌套列表视图滚动的线性布局

时间:2012-05-21 16:05:54

标签: android listview android-layout scrollview android-linearlayout

我有一个带有嵌套listview的LinearLayout,如下所示:

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

问题是listview拥有滚动条(因此只有listview中的内容可滚动)但我实际上希望父LinearLayout拥有滚动条(因此可以滚动整个内容)。

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

由于

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

3 个答案:

答案 0 :(得分:2)

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

我之前给出的关于MergeAdapter的答案是here

答案 1 :(得分:0)

您可以使用Tableview替换Listview,只要listview中没有太多项目。您仍然可以使用tableview的子视图,与listview的方式非常相似,您将无法以与listview相同的方式对其进行数据绑定,并且项目也不会回收。

答案 2 :(得分:0)

由于listview被设计为包含的项目数量超过了可以显示的数量,因此高度绝不会超过屏幕大小(最佳情况),这是控件的意图,但我想你可以强制它更大,看起来通常像出于很多原因,一个坏主意。

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

Listview with different view types per row

这可能会也可能不会起作用,具体取决于您尝试做什么,否则您可能只想将视图添加到滚动视图内的线性视图,即listview。

它只取决于用例(列表视图中有多少项,内存问题等)以及其他视图的用途。