• 布局中的layout_weight属性


    "weight"顾名思义是权重的意思,layout_weight 用于给一个线性布局中的诸多视图的重要程度赋值。所有的视图都有一个layout_weight值,默认为零,意思是需要显示多大的视图就占据多大的屏幕空间。这就不难解释为什么会造成上面的情况了:Button1~Button5都设置了layout_height和layout_width属性为wrap_content即包住文字内容,他们都没有设置layout_weight 属性,即默认为0.,这样Button1和Button2根据需要的内容占据了整个屏幕,别的就显示不了啦!

    若赋一个高于零的值,则将父视图中的可用空间分割,分割大小具体取决于每一个视图的layout_weight值以及该值在当前屏幕布局的整体layout_weight值和在其它视图屏幕布局的layout_weight值中所占的比率而定。举个例子:比如说我们在 水平方向上有一个文本标签和两个文本编辑元素。该文本标签并无指定layout_weight值,所以它将占据需要提供的最少空间。如果两个文本编辑元素每一个的layout_weight值都设置为1,则两者平分在父视图布局剩余的宽度(因为我们声明这两者的重要度相等)。如果两个文本编辑元素其中第一个的layout_weight值设置为1,而第二个的设置为2,则剩余空间的三分之二分给第一个,三分之一分给第二个(数值越小,重要度越高)。 

    见代码,第一个button权重最高,会要显示完整的,会吧button2给挤掉。

    如果两个权重一样的话且layout_weight一样,就每个占半个屏幕

    如果第一个weight为1,第二个weight为2,那第一次占3/2的屏幕,第二个占3/1的屏幕

     <Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Butto1111111111111111111111111111111111111111"
    android:layout_weight="0"
    />

    <Button
    android:id="@+id/button2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Button222222222222222222"
    android:layout_weight="1" />


    外层的layout要用android:orientation="horizontal"

  • 相关阅读:
    Delphi中创建一个可以改变大小的无边框窗口
    Delphi中让窗口关闭按钮无效的6种方法
    把人笑抽筋的签名
    Delphi中判断窗体最大化和最小化事件
    Delphi中窗体的帮助按钮上执行一个自定义的动作
    无法查询部门收支分析表
    Delphi中去掉限制窗体最小尺寸的Windows约束
    Delphi中在窗体标题栏画自定义文字
    调拨单等单据定位功能没有过滤条件
    Form中对象的引用
  • 原文地址:https://www.cnblogs.com/shenbin/p/2395619.html
Copyright © 2020-2023  润新知