了解weight属性

了解weight属性记录一下线性布局经常用到的一个属性weight

记录一下线性布局经常用到的一个属性weight。
经常使用,今天突然又深入了一点,在此记录。

了解weight属性

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity" >

    <!-- 三个TextView的控件并没有对齐,但是对于其中文本第一行是对齐的。这是因为TextView在LinearLayout中会参考父类的基线 -->
    <!-- LinearLayout中增加属性 android:baselineAligned="false" 可避免这样的问题。 -->

    <LinearLayout  android:layout_width="match_parent" android:layout_height="wrap_content" android:baselineAligned="false" android:orientation="horizontal" >

        <TextView  android:id="@+id/id" android:layout_width="0dp" android:layout_height="48dp" android:layout_weight="1" android:background="#44ff0000" android:gravity="center" android:text="11111111" />

        <TextView  android:id="@+id/id2" android:layout_width="0dp" android:layout_height="48dp" android:layout_weight="2" android:background="#4400ff00" android:gravity="center" android:text="2" />

        <TextView  android:id="@+id/id3" android:layout_width="0dp" android:layout_height="48dp" android:layout_weight="3" android:background="#440000ff" android:gravity="center" android:text="3" />
    </LinearLayout>

    <TextView  android:id="@+id/id0" android:layout_width="wrap_content" android:layout_height="48dp" android:background="#44ff0000" android:gravity="center" android:text="11111111" />

    <LinearLayout  android:layout_width="match_parent" android:layout_height="wrap_content" android:baselineAligned="false" android:orientation="horizontal" >

        <!-- width设置成wrap_content对weight设置的比值有影响 -->
        <!-- 说明LinearLayout中的layout_weight属性,首先按照控件声明的尺寸进行分配,然后再将剩下的尺寸按weight分配 -->
        <!-- 实际占用空间 = 控件宽度 + 父控件剩余宽度 * 比例 -->

        <TextView  android:id="@+id/id4" android:layout_width="wrap_content" android:layout_height="48dp" android:layout_weight="1" android:background="#44ff0000" android:gravity="center" android:text="11111111" />

        <TextView  android:id="@+id/id5" android:layout_width="0dp" android:layout_height="48dp" android:layout_weight="2" android:background="#4400ff00" android:gravity="center" android:text="22222" />

        <TextView  android:id="@+id/id6" android:layout_width="0dp" android:layout_height="48dp" android:layout_weight="3" android:background="#440000ff" android:gravity="center" android:text="3333" />
    </LinearLayout>

    <LinearLayout  android:layout_width="match_parent" android:layout_height="wrap_content" android:baselineAligned="false" android:orientation="horizontal" >

        <!-- 假设最外层是480dp 3个控件都是match_parent 剩余尺寸为 480 - 480*3 = -480*2 -->
        <!-- id7: 480+(-480*2)*(1/6)=480*(2/3) -->
        <!-- id8: 480+(-480*2)*(2/6)=480*(1/3)+ -->
        <!-- id9: 480+(-480*2)*(3/6)=0 -->
        <!-- 结论:实际占用空间 = 控件宽度 + 父控件剩余宽度 * 比例 -->

        <TextView  android:id="@+id/id7" android:layout_width="match_parent" android:layout_height="48dp" android:layout_weight="1" android:background="#44ff0000" android:gravity="center" android:text="11111111" />

        <TextView  android:id="@+id/id8" android:layout_width="match_parent" android:layout_height="48dp" android:layout_weight="2" android:background="#4400ff00" android:gravity="center" android:text="22222" />

        <TextView  android:id="@+id/id9" android:layout_width="match_parent" android:layout_height="48dp" android:layout_weight="3" android:background="#440000ff" android:gravity="center" android:text="3333" />
    </LinearLayout>

    <LinearLayout  android:layout_width="match_parent" android:layout_height="wrap_content" android:weightSum="2" android:orientation="horizontal" >

        <!-- LinearLayout中设置android:weightSum="2" 实现LinearLayout中只有一个TextView控件使其占用父控件的一半 -->
        <!-- 有layout_开头的是交给父控件去处理 -->
        <TextView  android:id="@+id/id10" android:layout_width="0dp" android:layout_height="48dp" android:layout_weight="1" android:background="#44ff0000" android:gravity="center" android:text="11111111" />

    </LinearLayout>

</LinearLayout>

今天的文章了解weight属性分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/64174.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注