Android LinearLayout 线性布局

LinearLayout 线性布局,将容器里的组件一个挨一个地排列起来

LinearLayout 不会自动换行,到末尾后剩余的组件将不会被显示出来

XML 属性

LinearLayout 几个重要的 XML 属性

xml 属性 说明
android:id 为组件设置一个资源 id,然后在 Java 中可以通过 findViewById(id) 找到该组件
android:background 为组件设置一个背景图片或者背景色
android:layout_width 布局的宽度,通常不直接写数字值,而是使用
wrap_content 组件实际大小
fill_parent/match_parent 填满父容器
android:layout_height 同 layout:layout_width
android:baselineAligned 该属性为 false,将会阻止布局管理器与它的子元素基线对其
android:divider 设置垂直布局时,两个按钮之间的分隔条
android:gravity 设置布局管理器内组件的对齐方式,值可以是
top/button/left/right/center_vertical/fill_vertical...
android:measureWithLargestChild 当属性设置为true时,所有带权重的子元素都会具有最大元素的最小尺寸
android:orientation 设置布局管理器内组件的排列方式,值可以是
vertical (默认)
horizontal

LinearLayout.LayoutParams XML 属性

xml 属性 说明
android:layout_gravity 指定该布局管理器内子组件布局方式
android:layout_weight 指定该子元素在 linearLayout 中所占的权重

android:layout_weight

android:layout_weight 是 LinearLayout 最重要的属性,可以说掌握了该属性就掌握了 LinearLayout

android:layout_weight 是按比例来划分布局控件,比如三七开,五五开等

divider (分割线)

xml 属性 说明
android:divider 属性用于设置 LinearLayout 的分割线图片
android:showDividers 设置分割线所在的位置,有四个可选值
none/middle/begin/end
android:dividerPadding 设置分割线的内边距

范例

首先创建一个 空的 Android 项目 cn.twle.android.linearlayout

两列五五开布局

修改 activity_main.xml 为以下内容

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    
        xmlns:tools="http://schemas.android.com/tools"    
        android:id="@+id/LinearLayout1"    
        android:layout_width="match_parent"    
        android:layout_height="match_parent"    
        android:orientation="horizontal">

        <LinearLayout    
            android:layout_width="1dp"    
            android:layout_height="fill_parent"    
            android:background="#ff0000"     
            android:layout_weight="1"/>


        <LinearLayout    
            android:layout_width="1dp"    
            android:layout_height="fill_parent"    
            android:background="#00ff00"     
            android:layout_weight="1"/>
    </LinearLayout>

两列三七开布局

修改 activity_main.xml 为以下内容

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    
        xmlns:tools="http://schemas.android.com/tools"    
        android:id="@+id/LinearLayout1"    
        android:layout_width="match_parent"    
        android:layout_height="match_parent"    
        android:orientation="horizontal">

        <LinearLayout    
            android:layout_width="1dp"    
            android:layout_height="fill_parent"    
            android:background="#ff0000"     
            android:layout_weight="3"/>


        <LinearLayout    
            android:layout_width="1dp"    
            android:layout_height="fill_parent"    
            android:background="#00ff00"     
            android:layout_weight="7"/>
    </LinearLayout>

两行一九开布局

修改 activity_main.xml 为以下内容

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    
        xmlns:tools="http://schemas.android.com/tools"    
        android:id="@+id/LinearLayout1"    
        android:layout_width="match_parent"    
        android:layout_height="match_parent"    
        android:orientation="vertical">

        <LinearLayout    
            android:layout_width="fill_parent"    
            android:layout_height="1dp"    
            android:background="#ff0000"     
            android:layout_weight="3"/>


        <LinearLayout    
            android:layout_width="fill_parent"    
            android:layout_height="1dp"    
            android:background="#00ff00"     
            android:layout_weight="7"/>
    </LinearLayout>

两行八二开布局

修改 activity_main.xml 为以下内容

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    
        xmlns:tools="http://schemas.android.com/tools"    
        android:id="@+id/LinearLayout1"    
        android:layout_width="match_parent"    
        android:layout_height="match_parent"    
        android:orientation="vertical">

        <LinearLayout    
            android:layout_width="fill_parent"    
            android:layout_height="1dp"    
            android:background="#ff0000"     
            android:layout_weight="3"/>


        <LinearLayout    
            android:layout_width="fill_parent"    
            android:layout_height="1dp"    
            android:background="#00ff00"     
            android:layout_weight="7"/>
    </LinearLayout>

三列一二三开布局 ( 使用 wrap_content )

修改 activity_main.xml 为以下内容

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    
        xmlns:tools="http://schemas.android.com/tools"    
        android:id="@+id/LinearLayout1"    
        android:layout_width="match_parent"    
        android:layout_height="match_parent"    
        android:orientation="horizontal">

        <LinearLayout    
            android:layout_width="wrap_content"    
            android:layout_height="fill_parent"    
            android:background="#ff0000"     
            android:layout_weight="1"/>


        <LinearLayout    
            android:layout_width="wrap_content"    
            android:layout_height="fill_parent"    
            android:background="#00ff00"     
            android:layout_weight="2"/>

        <LinearLayout    
            android:layout_width="wrap_content"    
            android:layout_height="fill_parent"    
            android:background="#0000ff"     
            android:layout_weight="3"/>
    </LinearLayout>

如果我们将 wrap_content 改成 match_parent|fill_content 又会怎么样呢?请看下一章节

Android 基础教程

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.