我目前正在修改xml布局,我想将所有视图分为2个部分,每个部分都有可用的高度。布局看起来像这样:
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
...Lots of stuff...
</LinearLayout>
我所做的是将每个“半”视图包裹在线性布局中,并为每个视图分配权重。
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<!-- Top half -->
<LinearLayout
android:layout_weight="1"
android:layout_height="0dp"
android:layout_width="fill_parent"
android:orientation="vertical">
... stuff and things ...
</LinearLayout>
<!-- Bottom half -->
<LinearLayout
android:layout_weight="1"
android:layout_height="0dp"
android:layout_width="fill_parent"
android:orientation="vertical">
... things and stuff ...
</LinearLayout>
</LinearLayout>
我无法弄清楚为什么这不会给我2个相同的窗格。较低的一个似乎占用了可用空间的90%。我尝试添加(android:weightSum =“2”)到容器布局,但无济于事。这些布局都没有ID,因此后面的代码不能修改它们。知道这里发生了什么吗?子视图是否能够修改它们的“半”容器以使它们看起来不相等?
答案 0 :(得分:0)
此链接可能对您有用:
http://www.chess-ix.com/blog/the-use-of-layout_weight-with-android-layouts/
您正在做的事情似乎是正确的,但可能您的Linearlayouts中的内容可能是罪魁祸首。
答案 1 :(得分:0)
尝试将weightSum添加到父LinearLayout,如下所示:
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:weightSum="2">
<!-- Top half -->
<LinearLayout
android:layout_weight="1"
android:layout_height="0dp"
android:layout_width="match_parent"
android:orientation="vertical">
... stuff and things ...
</LinearLayout>
<!-- Bottom half -->
<LinearLayout
android:layout_weight="1"
android:layout_height="0dp"
android:layout_width="match_parent"
android:orientation="vertical">
... things and stuff ...
</LinearLayout>
</LinearLayout>
此外,我更改了孩子们的layout_height:因为父母已经拥有该属性,所以您不需要为子LinearLayouts使用fill_parent。