当我为一个布局设置weight = 1而其他布局设置为2时会发生什么情况。如果我有线性布局
答案 0 :(得分:6)
当总和大于LinearLayout时,权重用于分配剩余的空白空间或占用空间。
指示LinearLayout中多少额外空间将分配给与这些LayoutParams关联的视图。如果不应拉伸视图,请指定0。否则,额外像素将在权重大于0的所有视图中按比例分配。
如果我们将父项划分为相等的部分,我们只需将子项的layout_weights all设置为1.但是如果我们想要不均衡地划分它,我们可以通过多种方式实现。我们可以使用总计1的小数小数值,或者我们可以使用整数值:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout android:background="#FF0000"
android:layout_height="fill_parent" android:layout_width="fill_parent"
android:layout_weight="0.66667" />
<LinearLayout android:background="#00FF00"
android:layout_height="fill_parent" android:layout_width="fill_parent"
android:layout_weight="0.33333" />
</LinearLayout>
或者
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout android:background="#FF0000"
android:layout_height="fill_parent" android:layout_width="fill_parent"
android:layout_weight="2" />
<LinearLayout android:background="#00FF00"
android:layout_height="fill_parent" android:layout_width="fill_parent"
android:layout_weight="1" />
</LinearLayout>
这两个都会产生相同的结果。
答案 1 :(得分:1)
如果有额外的空间,第一个布局将扩展为1/3,第二个布局将占2/3。查看官方doc。
答案 2 :(得分:0)
取决于你给出的layout_width / layout_height。
两个并排布局(假设水平方向)分别为layout_weight = 1和layout_weight = 2将占用宽度的1/3和2/3,并将其layout_width设置为0dip。但是,如果你输入layout_width =“fill_parent”,则会发生相反的情况:layout_weight = 1的视图占据宽度的2/3,而layout_weight = 2的视图只占1/3。