安卓LinearLayout如何填充中间部分

46

我有一个垂直的LinearLayout(LL),高度设置为300像素,并有3个嵌套的LL。第1个和第3个使用android:layout_height="wrap_content"进行设置,而中间的一个使用android:layout_height="fill_parent"。令我沮丧的是,第3个LL被推出去了,第2个填充父布局直到底部。我该如何实现所需的效果,因为我希望可以调整外部容器的大小,中间部分会随之扩展和收缩以适应变化。

1个回答

80

原来(感谢Mark Murphy给出的答案),我所要做的就是将中间行设置为

layout_height="0px",并且设置layout_weight="1"

如果在沿轴线(水平或垂直)分配了所有wrap_content和固定大小的元素后,仍然有剩余空间,LinearLayout会按比例将剩余空间分配给那些指定权重的小部件。


7
这里的关键是仅对第二个线性布局使用layout_weight。 - Artem Russakovskii
谢谢您的回答。我不确定为什么在我测试过的一些Android设备上,layout_height="wrap_content"和layout_weight="1"也能正常工作。 - Hong

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接