![Android移动应用开发技术与实践](https://wfqqreader-1252317822.image.myqcloud.com/cover/15/40681015/b_40681015.jpg)
4.1 线性布局(LinearLayout)
线性布局是程序中最常见的一种布局方式。程序中线性布局的特点是:各个子元素彼此连接,中间不留空白。
4.1.1 LinearLayout介绍
线性布局在XML布局文件中使用<LinearLayout>标签进行配置。线性布局可以分为水平线性布局和垂直线性布局。通过android:orientation属性设置线。
<LinearLayout>标签有一个非常重要的Gravity属性,该属性用于控制布局中的视图位置。该属性可取的主要值如表4-1所示。
表4-1 LinearLayout属性值的含义
![](https://epubservercos.yuewen.com/B95AF2/21122066801630906/epubprivate/OEBPS/Images/93_01.jpg?sign=1739526878-nPK0EDWAA5sApZSLRuKxMefBLzP4Tzea-0-5884c8a9bb772987e16cc72d1b1de0a9)
● 如果设置多个属性值,需要使用“|”进行分隔,在属性值和“|”之间不能有其他符号(如空格等)。
● <LinearLayout>中的子标签还可以使用layout_gravity和layout_weight属性来设置每一个视图的位置。
● layout_gravity:可取值与gravity属性相同,表示当前视图在布局中的位置。
● layout_weight:是一个非负数整数值,如果该属性值大于0,线性布局会根据水平线方向不同视图的layout_weight属性值之和的比例为这些视图分配自己所占的区域,视图将按照相应比例拉伸。
如果在<LinearLayout>标签中有两个<Button>标签,这两个标签的layout_weight属性值都是1,并且<LinearLayout>标签的orientation属性值是horizontal,这两个按钮都会被拉伸到屏幕宽度的一半,并显示在屏幕的正上方。
若layout_weight属性值为0,视图会按原大小显示(不会被拉伸)。对于其余layout_weight属性值大于0的视图,系统将会减去layout_weight属性值为0的视图的宽度或高度,再用剩余的宽度和高度按相应的比例来分配每一个视图所占的宽度和高度。
4.1.2 LinearLayout实例
线性布局(LinieLayout)最重要的一个属性为“orientation”,当不设置此属性时,默认布局中的元素都为水平方向排列成一行,因此如果要求元素垂直排列时,一定要将此属性设置为垂直(Vertical),见下面示例。
【例4-1】 LinearLayout实例的main.xml
![](https://epubservercos.yuewen.com/B95AF2/21122066801630906/epubprivate/OEBPS/Images/94_01.jpg?sign=1739526878-GXfsw3yyfr5woPEQBf9j7GOxUUYuJwt2-0-1e2abb0b212aeb723a2ca79edfc175ab)
![](https://epubservercos.yuewen.com/B95AF2/21122066801630906/epubprivate/OEBPS/Images/95_01.jpg?sign=1739526878-5kjJ7Oc0XMlNaEFehNwyNltbpEe4pf7x-0-a4410f20bedb8d9776b544e25a7af38e)
![](https://epubservercos.yuewen.com/B95AF2/21122066801630906/epubprivate/OEBPS/Images/96_01.jpg?sign=1739526878-TSEvH4AUgzL9DDujthKBhTKcHk1fqKQr-0-e7dc9f488e449bb13bee088e46aeebc5)
效果如图4-1所示。
![](https://epubservercos.yuewen.com/B95AF2/21122066801630906/epubprivate/OEBPS/Images/96_02.jpg?sign=1739526878-MnebF527Hae17HeBXquaQYwJZ10Ax8Ax-0-95a3911bc0a6fe48bfcab1572dc479ea)
图4-1 布局管理