Android 线性布局

线性布局的常用属性:

水平布局(默认) android:orientation="horizontal"

垂直布局 android:orientation="vertical"

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >
    <!-- ....省略....-->
</LinearLayout>

设置子控件的位置 (重力属性)

android:gravity --- center 水平垂直居中

                        --- center_horizontal 水平居中

                        --- center_vertical 垂直居中

                        --- top & bottom 顶部&底部

                        --- left & right 靠左&靠右

小提示:属性值可以叠加 

例如:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="100dp"
    android:gravity="center_vertical|right">
</LinearLayout>

子控件也可以决定自己的位置 android:layout_gravity (容易失效)

                            --- 属性值与 android:gravity 完全一样

android:gravity VS android:layout_gravity

--- android:gravity 设置布局内部所有子 View

--- android:layout_gravity 设置 View 的本身

--- android:layout_gravity 属性的设置与父布局的 android:orientation 属性设置有关(导致大部分失效)

 子控件按照权重比分配空间 android:layout_weight  (只在线性布局中生效)

                                  --- 表示 View 在父布局所占空间比例

                                  --- 当不设置时,默认值为0

在不均分的情况下要把 layout_width设为0 ,等分的情况下 android:layout_width="wrap_content" 

使用权重时宽度等于0是没有错的.

示例1:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"

    >

    <!--头部布局-->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:background="#f0f">

    </LinearLayout>

    <!--中间布局-->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"          //纵向分割,中间布局不能有高度
        android:background="#ff0"
        android:gravity="center_vertical"
        android:orientation="horizontal"
        android:layout_weight="1"

        >

        <Button
            android:id="@+id/btn_wat1"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:text="解暑力:1"
            android:layout_weight="2"
            />

        <Button
            android:id="@+id/btn_wat2"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:text="解暑力:2"
            android:layout_weight="1"
            />

        <Button
            android:id="@+id/btn_wat3"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:text="解暑力:3"
            android:layout_weight="1"
            />


    </LinearLayout>

    <!--底部布局-->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="80dp"
        android:background="#0ff">

    </LinearLayout>

</LinearLayout>

padding 和 margin 属性

示例2:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ccc"
    android:orientation="vertical">

    <!--行布局-->
    <LinearLayout
        android:id="@+id/box"                        //有id必须加orientation,否则报错
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
        android:layout_marginTop="5dp"
        android:background="#fff"
        android:gravity="center_vertical"
        android:orientation="horizontal"
        android:padding="5dp"

        >

        <ImageView
            android:layout_width="70dp"
            android:layout_height="70dp"
            android:src="@mipmap/book" />

        <!--文字说明部分-->
        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5dp"
            android:orientation="vertical"
            android:layout_weight="1"

            >

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="记事本"
                android:layout_marginTop="3dp"
                android:textSize="16sp"

                />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="版本: 1.0"
                android:layout_marginTop="6dp"
                android:textSize="12sp"
                android:textColor="#999"
                />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="大小: 3.0M"
                android:layout_marginTop="6dp"
                android:textColor="#999"
                android:textSize="12sp"

                />

            
        </LinearLayout>
        
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="卸载"
            />


    </LinearLayout>

</LinearLayout>

猜你喜欢

转载自blog.csdn.net/from_heat/article/details/81274934