我必须在片段中创建一个listview,无论屏幕大小是多少都应该显示前三个项目(其余部分应该是可滚动的)。这3个项目应该填满整个可用空间,这意味着项目高度必须动态调整。您还可以说:前三项应占据列表视图的33%左右。
有没有办法使用LinearLayout和布局权重来实现这一目标?如果不是,那么以编程方式进行此操作的最佳方法是什么,例如:通过确定当前的片段大小或类似的东西?
答案 0 :(得分:1)
我设法使用OnGlobalLayoutListener获得高度和宽度。
毕竟,我们认为这不是一个好主意布局,但我认为有人可能会觉得这很有趣;)
答案 1 :(得分:0)
尝试在列表适配器中的膨胀布局上使用view.setMinimumHeight(int),并为其提供所需的高度。
至于获取屏幕尺寸,您可以查看this SO post
编辑:将该方法应用于定义每个项目的布局。您需要一个自定义适配器,并在您的getView方法
中执行此操作答案 2 :(得分:0)
您可以通过确定屏幕尺寸,并在创建列表项目时调整列表项目的高度来动态计算大小。添加到列表中。 This question和this one可能有助于减轻使用权重的影响,并会清理您的代码。