我正在制作一个包含两个不同部分的GUI。第一部分(顶部)由一些横幅,几个固定按钮组成。所以我认为使用LinearLayout是最直接的实现方式。第二部分由几个相似的项组成,这些项可以通过使用ExpandableListView实现,我想。 但问题是内容超出了屏幕尺寸。所以我打算将其中两个放入ScrollView。我检查了几个来源,似乎将“ExpandableListView”放在ScroolView中是不可能的,或者不高效,所以我很害怕......
您是否有必要确认这是否可行?有效吗?
如果不是,您能否就此布局设计给我一些建议?
我真的很期待你的支持。
此致。
答案 0 :(得分:3)
如果列表顶部有固定标题,请使用ListView's header view feature。
在ScrollViews中放置ListViews根本没有意义,这就是原因:
ListView有一个目的:有效地显示无界数据集。由于这些可能非常大(数以万计的项目以及更多),因此您不希望为每个项目预先创建视图。相反,ListView仅针对当前适合ListView在屏幕上的测量空间的项目询问其Adapter for Views。当项目的视图滚动到视线之外时,ListView会断开该视图并将其移回适配器以填充新数据并重新使用以显示其他项目。 (这是适配器的convertView
方法的getView
参数。)
ScrollView也有一个目的:拍摄单个子视图并为其提供“无限”垂直空间。然后,用户可以向上和向下滚动以查看完整内容。
现在,如果有可用的无限高度,ListView会为100,000件物品适配器创建多少项视图? :)
通过将ListView放在ScrollView中,您将破坏ListView的主要目的。父ScrollView将为ListView提供有效的无限高度,但ListView希望有一个有限的高度,以便它可以为大型数据集提供有限的窗口。
答案 1 :(得分:0)
良好可扩展列表视图本身具有可滚动属性,将其置于滚动视图中是非常不可取的。因为这两个卷轴都会发生矛盾,并且在这种情况下无法获得平滑滚动。
如果我们要在列表之前或之后显示任何数据......
最好的方法是使用页眉和页脚视图列出...
我建议您使用页眉和页脚。