什么是android:layout_weight?

时间:2011-11-07 08:44:52

标签: android android-layout

当我为一个布局设置weight = 1而其他布局设置为2时会发生什么情况。如果我有线性布局

3 个答案:

答案 0 :(得分:6)

当总和大于LinearLayout时,权重用于分配剩余的空白空间或占用空间。

指示LinearLayout中多少额外空间将分配给与这些LayoutParams关联的视图。如果不应拉伸视图,请指定0。否则,额外像素将在权重大于0的所有视图中按比例分配。

详细了解此信息点击。 HereLink1

Layout weight problem

如果我们将父项划分为相等的部分,我们只需将子项的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。