我有一个带有嵌套listview的LinearLayout,如下所示:
<LinearLayout ... >
<LinearLayout>
</LinearLayout>
<ListView>
</ListView>
</LinearLayout>
问题是listview拥有滚动条(因此只有listview中的内容可滚动)但我实际上希望父LinearLayout拥有滚动条(因此可以滚动整个内容)。
在ScrollView中包装父ListView尚未成功,因为ScrollView无法识别ListView高度(看起来像是在运行时呈现)
由于
编辑:已解决我完美的解决方案是使用MergeAdapter,正如Barak所建议的那样
答案 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。
它只取决于用例(列表视图中有多少项,内存问题等)以及其他视图的用途。