Android ListView:每个屏幕大小的固定行数

时间:2015-03-11 16:00:49

标签: java android android-layout android-listview android-layout-weight

我必须在片段中创建一个listview,无论屏幕大小是多少都应该显示前三个项目(其余部分应该是可滚动的)。这3个项目应该填满整个可用空间,这意味着项目高度必须动态调整。您还可以说:前三项应占据列表视图的33%左右。

有没有办法使用LinearLayout和布局权重来实现这一目标?如果不是,那么以编程方式进行此操作的最佳方法是什么,例如:通过确定当前的片段大小或类似的东西?

3 个答案:

答案 0 :(得分:1)

我设法使用OnGlobalLayoutListener获得高度和宽度。

毕竟,我们认为这不是一个好主意布局,但我认为有人可能会觉得这很有趣;)

答案 1 :(得分:0)

尝试在列表适配器中的膨胀布局上使用view.setMinimumHeight(int),并为其提供所需的高度。

至于获取屏幕尺寸,您可以查看this SO post

编辑:将该方法应用于定义每个项目的布局。您需要一个自定义适配器,并在您的getView方法

中执行此操作

答案 2 :(得分:0)

您可以通过确定屏幕尺寸,并在创建列表项目时调整列表项目的高度来动态计算大小。添加到列表中。 This questionthis one可能有助于减轻使用权重的影响,并会清理您的代码。