Android学习历程---Android布局

本文详细介绍了Android开发中常用的六种布局方式:线性布局、相对布局、表格布局、网格布局、绝对布局及帧布局。每种布局的特点、应用场景及其关键属性都被一一列举,帮助开发者更好地理解和选择合适的布局。

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

Android中常用的5大布局方式有以下几种:
1.线性布局(LinearLayout)
2.相对布局(RelativeLayout)
3.表格布局(TableLayout)
4.网格布局(GridLayout)
5.绝对布局(AbsoluteLayout)
6.帧布局(FrameLayout)
下面介绍详细介绍每种布局
线性布局(LinearLayout)
常用的布局方式,两种方式指定控件位置 垂直和水平,如果没有指定方向则默认为水平
方向默认为水平
一些重要属性:
android:Layout_gravity:指定控件再布局中的对齐方式
android:gravity:指定文字在控件中的对齐方式
android:layout_weight=”1”—->控件本身占当前父容器的一个比例
注意:当android:orientation=”vertical”时,只有水平方向的设置 才起作用,垂直方向的设置不起作用。即left,right,center_horizontal是生效的。
当android:orientation=”horizontal”只有垂直方向的设置才起作用,即 top,bottom,center_vertical是生效的
相对布局(RelativeLayout)
它包含的子控件将以控件之间的相对位置或者子类控件相对父类容器的位置的放排列
属性:
android:layout_alignParentLrft=”true” 子类控件相对当前父类容器靠边
android:layout_alignParentTop=”true” 子类控件相对当前父类容器靠上边
android:layout_marginLeft=” dp” 子类控件距离父类容器左边的距离
android:layout_marginTop=” dp” 子类控件距离父类容器右边的距离
android:layout_centerInParent=”true” 子类控件相对父类容器水平居中又垂直居中
android:layout_centerHorizontal=”true” 子类控件相对父类容器水平居中
android:layout_centerVertical=”true” 子类控件相对父类容器垂直居中
RelativeLayout布局中的子布局有gravity属性
以下属性决定了子类控件相对子类控件的位置
android:layout_below=“@+id/” 该控件位于给定id控件的底部
android:layout_toRightof=“@+id/”该控件位于给定id控件的右边
android:layout_above=“+id/” 该控件位于给定id控件的上面
android:layout_toleftOf“@+id/button”该控件位于给定控件的左边
android:layout_alignBaseline=“@+id/”该控件的内容与给定id控件的内容在一条线上
android:layout_alignBottom=“@+id/”该控件的底部边缘与给定id控件的下边缘对齐
android:layout_alignLeft=”@+id/”该控件的左边缘与给定id控件的右边缘对齐
android:layout_alignRight=“@+id/”该控件的右边缘与给定id的控件的右边缘对齐
android:layout_alignTop=“@+id”该控件的顶部边缘与给定id控件的顶部对齐
表格布局(TableLayout)
以行列的形式管理子控件,每一行为一个TableRow的对象,当然也可以是一个View的对象
全局属性:android:conllapseColumns=”1,2”
隐藏从零开始的索引列,列之间必须用逗号隔开
android:shrinkColumns=”1,2”
收缩列从0开始的索引列 当可收缩的列太宽(内容过多)不会被挤出屏幕,列之间必须用逗号隔开,可以通过“*”
代替收缩所有列。注意一列能同时表示会收缩和拉伸
android:stretchColumns=”1,2”
拉伸从0开始的索引列,以填满剩下的多余空白空间,列之间必须用逗号隔开,以通过“*”
代替收缩所有列。注意一列能同时表示会收缩和拉伸
局部属性 android:layout_column=”1” 该控件显示在第二列
android:layout_span=”2” 该控件占据2列
网格布局(GridLayout)
这个布局是在Android4.0出现的布局,和TableLayout大同小异只是新增加了一些东西
①跟LinearLayout(线性布局)一样,他可以设置容器中组件的对齐方式
②容器中的组件可以跨多行也可以跨多列(相比TableLayout直接放组件,占一行相比较
常用属性:
排列对齐:
①设置组件的排列方式: android:orientation=”” vertical(竖直,默认)或者horizontal(水平)
②设置组件的对齐方式: android:layout_gravity=”” center,left,right,buttom啊,这些,如果想同时用两种的话:eg: buttom|left
设置布局为几行几列:
①设置有多少行: android:rowCount=”4” //设置网格布局有4行
②设置有多少列: android:columnCount=”4” //设置网格布局有4列
设置某个组件位于几行几列
①组件在第几行: android:layout_row = “1” //设置组件位于第二行
②组件在第几列: android:layout_column = “2” //设置该组件位于第三列
设置某个组件横跨几行几列:
①横跨几行: android:layout_rowSpan = “2” //纵向横跨2行
②横跨几列: android:layout_columnSpan = “3” //横向横跨2列
绝对布局(AbsoluteLayout)
这种布局方式一般不建议使用 因为他的位置是绝对的 不会随着屏幕的变化而自动适应
理解:又可以叫坐标布局 可以直接指定子元素的位置 绝对位置(xy)
缺陷: 适应性差,在不同屏幕的适配有缺陷
属性:android:layout_x =”” 控制当前子类控件的x位置
android:layout_y =”” 控制当前子类控件的Y位置
帧布局( FrameLayout)
帧布局是使用较少的一种布局方式,但在有些方面比较好用 比如在播放 暂停按钮上使用
理解:所有子元素都不能被指定放置的位置,他们统统放在这块区域的左上角,并且后面的子元素直接覆盖在前面的子元素智商将前面的子元素部分或全部遮挡
使用android:foreground设置前景图
使用android:keepScreenOn保持屏幕唤醒
使用android:foregroundGravity设置前景图的位置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值