Android六大布局

本文详细介绍了Android开发中的五种常见布局方式:线性布局、相对布局、表格布局、网格布局及帧布局的特点与使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android开发布局:.xml 页面排版
布局由布局管理器(布局样式)+组件组成
布局管理器(布局样式):控制组件的摆放规则,他分为几种,其中最常见的有5种:

1.线性布局(LinearLayout)

LinearLayout是线性不布局控件,它包含的子控件将以横向或者竖向的方式排列
android:orientation = “vertical”
— 该属性决定他子类控件的排布方式(vertical:垂直;horizontal: 水平)
android:gravity = “center”
— 该属性决定他子类xy的位置
android:layout_gravity 表示组件自身在父组件中的位置
android:gravity 表示组件的子组件在组件中的位置

特点是自己里面的组件可以设定两种排列方式:水平Horizontal+垂直Vertical,写这个布局的时候除了写width,height之外,必须写上orientation就是排列的方向。
这里写图片描述

2.相对布局(RelativeLayout)

RelativeLayout是相对布局控件,它包含的子控件将以控件之间的相对位置或者子类控件相对父容器的位置的
方式排列
android:layout_alignParentLeft = “true” 子类控件相对当前父类容器靠左边
android:layout_marginTop = “41dp” 子类控件相对父类容器上边的距离
android:layout_centerInParent = “true”子类控件相对于父类容器即水平居中又垂直居中
android:layout_centerHorizontal = “true” 子类控件相对于父类容器水平居中
android:layout_centerVertical = “true” 子类控件相对于父类容器垂直居中
android:layout_toRightOf=”@+id/1” 该控件位于控件1右侧
android:layout_alignBottom=”@+id/1” 该控件底部对齐于控件1

特点是自己里面的组件是按照相对位置排列,他有相对于谁,位于谁上下左右排列,而且还有相对于父容器水平居中,垂直居中,水平垂直居中,相对于父容器左对齐,右对齐,顶部对齐,底部对齐,等属性。
相对布局如果不给其中的组件设定位置,那么组件就会默认在父容器的左上角一层一层覆盖。这点类似于帧布局。
这里写图片描述

3.表格布局(TableLayout)

TableLayout 表格布局模型以行列的形式管理子控件,每一行为一个TableRow的对象,当然也可以是一个View的对象。
①如果我们直接往TableLayout中添加组件的话,那么这个组件将占满一行!!!
②如果我们想一行上有多个组件的话,就要添加一个TableRow的容器,把组件都丢到里面!
注意一列能同时表示收缩和拉伸,可以通过”*”代替收缩或拉伸所有列,以上这三个属性的列号都是从0开始算的
android:collapseColumns = “1,2”隐藏从0开始的索引列。列之间必须用逗号隔开:1,2,5
android:shrinkColumns=”1,2” 收缩从0开始的索引列。当可收缩的列太宽()内容过多不会别挤出屏幕,
android:stretchColumns = “1,2”拉伸从0开始的索引。以填满剩下的多余空白空间。列之间必须用逗号隔开。
对于内的控件而言
android:layout_column = “1” 表示该控件显示在第2列
android:layout_span = “2” 表示该控件占据2列

他是配合tableraw来使用 ,一行一行的,tableraw里面有一些控制表格长度的属性。

4.网格布局(GridLayout)

该布局是Android 4.0 后新增的一个布局,以网格的形式布局窗口控件
这里要说一点,网格布局和其他布局不同,可以不为组件设置Layout_width和Layout_height属性
因为组件的宽高由几行几列决定了,当然,你也可以写个wrap_content
常用属性:
排列对齐:
①设置组件的排列方式: android:orientation=”” vertical(竖直,默认)或者horizontal(水平)
②设置组件的对齐方式: android:layout_gravity=”” center,left,right,buttom啊,这些,如果想同时用两种的话:eg: buttom|left
设置布局为几行几列:
①设置有多少行:android:rowCount=”4” //设置网格布局有4行
②设置有多少列:android:columnCount=”4” //设置网格布局有4列
设置某个组件位于几行几列
注:都是从0开始算的哦!
①组件在第几行:android:layout_row = “1” //设置组件位于第二行
②组件在第几列:android:layout_column = “2” //设置该组件位于第三列
设置某个组件横跨几行几列:
①横跨几行:android:layout_rowSpan = “2” //纵向横跨2行
②横跨几列:android:layout_columnSpan = “3” //横向横跨2列

类似表格也是格式比较固定的表格,已经弃用。
这里写图片描述

5.帧布局(FrameLayout)

在这个布局中, 所有的元素都不能别指定放置的位置,他们统统放于这块区域的左上角,并且后面的子元素直接覆盖在前面的子元素上,
将前面的子元素部分和全部遮挡。
FrameLayout的属性很少就两个,但是在说之前我们先介绍一个东西:
前景图像:永远处于帧布局最上面,直接面对用户的图像,就是不会被覆盖的图片。
两个属性:
android:foreground:*设置改帧布局容器的前景图像
android:foregroundGravity:设置前景图像显示的位置

帧布局如果不给其中的组件设定位置,那么组件就会默认在父容器的左上角一层一层覆盖。帧布局只能用重心gravity来控制自己的位置,拥有的方法比相对布局少很多,通常只用于一层一层的布局。

6.绝对布局(AbsoluteLayout)

该布局又可以叫做坐标布局,可以直接指定子元素的绝对位置(x,y)
但是由于手机屏幕尺寸差别较大,使用绝对定位的适应性会比较差,在屏幕的适配上有缺陷
android:layout_x = “32dip” 控制当前子类控件的x位置
android:layout_y = “32dip” 控制当前子类控件的y位置

可以设定组件的固定坐标,也就是x,y坐标,现在已经弃用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值