目录
- 说明
- 举例
说明
简单来说,android:layout_weight为当前控件按比例分配剩余空间。且单个控件该属性的具体数值不重要,而是多个控件的属性值之比发挥作用,例如有2个控件,各自的android:layout_weight的值设为0.5和0.5,或者设置为5和5,布局效果都是各占一半,都是1:1。
举例
本文以RadioButton为例,使用此控件需要搭配RadioGroup,初始版本代码如下:
<RadioGroupandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"> <RadioButtonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="仅通知"android:textSize="20dp"android:textColor="@android:color/black"/><RadioButtonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="自动化"android:textSize="20dp"android:textColor="@android:color/black"/>
</RadioGroup>
实现效果如下:

喜欢对称放在屏幕中间风格的,给两个RadioButton设置android:layout_weight值为0.5,代码不再赘述,效果图如下:

感觉还是不够对称的,希望能够在屏幕两侧有对称的空余,可以随便加些控件如TextView来占个位置,注意,占空控件的宽、高属性android:layout_width和android:layout_height设置为wrap_content或者0dp,且RadioButton不设置android:layout_weight属性。 这样占空控件只会分配RadioButton布局好后的剩余空间。代码补充如下:
<RadioGroupandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><TextViewandroid:layout_width="0dp"android:layout_height="0dp"android:layout_weight="3"android:layout_gravity="center"/><RadioButtonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="仅通知"android:textSize="20dp"android:textColor="@android:color/black"/><TextViewandroid:layout_width="0dp"android:layout_height="0dp"android:layout_weight="3"android:layout_gravity="center"/><RadioButtonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="自动化"android:textSize="20dp"android:textColor="@android:color/black"/><TextViewandroid:layout_width="0dp"android:layout_height="0dp"android:layout_weight="3"android:layout_gravity="center"/>
</RadioGroup>
最终效果如下:
