线性布局的概念
线性布局(LinearLayout)是Android开发中常用的一种布局方式,它是以垂直和水平方式来显示界面中的控件。 它以一对<LinearLayout></LinearLayout>
标签进行标识。
常用属性
1 基本属性
属性 | 含义 | 属性值 |
---|---|---|
layout_height | 高 | wrap_content:包裹内容 match_parent:与父控件匹配 |
layout_width | 宽 | wrap_content:包裹内容 match_parent:与父控件匹配 |
orientation | 方向 | vertical:垂直 horizontal:水平 |
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android: orientation ="vertical">
</LinearLayout>
2 设置居中
在线性布局中,内部的控件可以通过layout_gravity属性控制对齐方式。
属性 | 含义 |
---|---|
left | 左 |
right | 右 |
top | 上 |
bottom | 下 |
center_horizontal | 水平居中 |
center_vertical | 垂直居中 |
center | 水平垂直居中 |
在垂直线性布局中,只能设置控件的水平对齐方式。在水平线性布局中,只能设置控件的垂直对齐方式
。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="one"
android:layout_gravity="left"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="two"
android:layout_gravity="center_horizontal"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="three"
android:layout_gravity="right"
/>
</LinearLayout>
3 设置控件比例
在线性布局中,内部的控件可以使用layout_weight权重属性来控制所占的比例。例如,在垂直线性布局中我们设置三个按钮的高度比例为1:2:3
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:layout_width="wrap_content"
android:layout_height="0dp"
android:text="one"
android:layout_weight="1"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="0dp"
android:text="two"
android:layout_weight="2"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="0dp"
android:text="three"
android:layout_weight="3"
/>
</LinearLayout>
布局的嵌套
布局之间可以相互嵌套,形成较为复杂的布局。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="one"
android:layout_weight="1"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="two"
android:layout_weight="1"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="three"
/>
</LinearLayout>
</LinearLayout>