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
又会怎么样呢?请看下一章节