Android线性布局LinearLayout 内 weight

作者: 滴滴滴9527 | 来源:发表于2017-04-14 23:27 被阅读192次

1、weight 属性是LinearLayout独有的属性

2、weight值是一个数字,用于指定每个控件与其他同级控件剩余空间中的占比,

其实就是按比例分配屏幕的**剩余**宽度或者高度

这有点像饮料配方中各种成分的比例: “2 份苏打、1 份糖浆”是指饮料中三分之二是苏打。例如,如果你将一个控件的 weight 值指定为 2,将另一个控件的 weight 值指定为 1,总和是 3,那么第一个控件将填满剩余空间的 2/3,而第二个控件则填满其余部分。 如果你添加了第三个控件,将其 weight 值指定为 1,那么现在第一个控件(weight 值为 2)将获得 1/2 的剩余空间,其余两个视图则各占 1/4。

注意:这里是分配剩余宽度或高度

例如:你在水平方向上有5个控件,其中4个控件都指定了weight 属性为1,那么设置这4个组件的宽度android:layout_width=" "是不起作用的,系统会在扣除那个没有指定weight属性组件的所需宽度后为这4个控件平方剩余宽度

3、LinearLayout所有控件的默认 weight 值都为 0,所以如果你仅将一个控件的 weight 值指定为大于 0,那么等到其他所有控件都获得所需空间后,该视图便会填满所有剩余空间

PS:这一点很实用,例如,有2个控件在android:orientation="horizontal"中,你想要把一个控件放在右边,但是android:layout_gravity="right"不生效,这是因为LinearLayout在竖直布局下,左对齐、右对齐,水平居中生效,在水平布局下,顶部对齐、底部对齐、竖直居中生效。

有了weight属性后我们就很好解决了,我们可以把左边的控件weight值设为1,那么另外一个控件就自动局右了

4、在android:orientation="horizontal"时使用weight属性的控件宽度设置为零 (0dp) 可提高布局性能,这是因为如果将宽度设置为 "wrap_content",则会要求系统计算宽度,而该计算最终毫无意义,因为 weight 值还需要计算另一个宽度,才能填满剩余空间;同理在方向为vertical时,使用weight属性的控件高度设置为零 (0dp) 可提高布局性能


相关文章

  • Android线性布局LinearLayout 内 weight

    1、weight 属性是LinearLayout独有的属性 2、weight值是一个数字,用于指定每个控件与其他同...

  • 第二周--布局与优化

    一、布局: Linearlayout----线性布局weightSum:权重量layout_weight:权重比例...

  • 2020-10-06

    Android常见界面布局:RelativeLayout(相对布局) LinearLayout(线性...

  • Android - 4种基本布局

    1.线性布局 LinearLayout:线性布局 EditText 和 Button 的 android:layo...

  • Android常用几种布局

    一、线性布局LinearLayout 1、排列方向:orientation设置2、weight属性:占比剩余空间的...

  • Android控件

    vertial 水平horizontal 垂直 布局 : LinearLayout 线性布局android:l...

  • 布局管理

    LinearLayout(线性布局) 基本属性: ①android:orientation android:ori...

  • Android的Layout --- 布局

    UILayout LinearLayout 线性布局 默认android:orientation="horizon...

  • android学习笔记(3)

    五大布局 LinearLayout 线性布局 android:orientation="vertical/hori...

  • Android基础01

    Android中有六大布局,分别是:LinearLayout(线性布局),RelativeLayout(相对布局)...

网友评论

    本文标题:Android线性布局LinearLayout 内 weight

    本文链接:https://www.haomeiwen.com/subject/yvmgattx.html