Android 六大布局

六大布局

本文大部分参考原文:https://www.cnblogs.com/web424/p/6961764.html

1线性布局LinearLayout
2表格布局TableLayout
3相对布局RelativeLayout
4层布局FrameLayout
5绝对布局AbsoluteLayout
6网格布局GridLayout

一、线性布局:LinearLayout

序号属性说明
1

android:orientation="horizontal"

android:orientation="vertical"

1)水平线性布局,布局内部所有的控件水平排列

2)垂直线性布局,布局内所有的控件垂直排列

2android:gravity=""

1)center:如果是水平排列则只有水平居中有效果,如果是垂直排列则只有垂直居中有效果

2)center_vertical:垂直居中(仅在控件垂直排列时有效)

3)center_horizontal:水平居中(仅在控件水平排列时有效)

4)top:垂直靠上对齐(仅在控件垂直排列时有效)

5)bottom:底部对齐(仅在控件垂直排列时有效)

6)left:水平靠左(仅在控件水平排列时有效)

7)right:水平靠右(仅在控件水平排列时有效)

ps:当父类控件的gravity和子类控件的layout_gravity发生冲突的时候,采用的是父类属性gravity的效果。

3android:layout_weight="1"

1)权重,默认为0

2)权重设置之后可以在水平方向和垂直方向上的长度生效,通常来讲需要使用到权重的方向,该方向上的空间长度不设置或设置为零。

3)渲染时先按照控件正常尺寸渲染,当还有屏幕剩余空间时,按照各个控件的权重大小进行比例分配,占满全屏。

   

二、相对布局:RelativeLayout

通常情况下相对布局都是通过id进行管理的,都会加id属性

序号属性说明
1android:layout_alignParentTop控件的顶部与父控件的顶部对齐
2android:layout_alignParentBottom控件底部与父控件底部对齐
3android:layout_alignParentLeft与父控件左部对齐
4android:layout_alignParentRight与父控件右部对齐
以下属性是相对于其他控件而言的属性,采用参照方式  android:layout_above="@id/name"
1android:layout_above控件的底部置于给定ID控件之上
2android:layout_below控件的顶部置于给定ID控件之下
3android:layout_toLeftOf控件的右边缘与给定ID控件的左边缘对齐(控件在给定ID控件的左边)
4android:layout_toRightOf控件的左边缘与给定ID控件的右边缘对齐(控件在给定ID控件的右边)
5android:layout_alignBaseline控件的baseline与给定ID控件的baseline对齐(什么是baseline?
6android:layout_alignTop控件的顶部边缘域给定ID控件的顶部边缘对齐
7android:layout_alignBottom控件的底部边缘域给定ID控件的底部边缘对齐
8android:layout_alignLeft控件的左边缘与给定ID控件的左边缘对齐
9android:laytout_alignRight控件的右边缘与给定ID控件的右边缘对齐
居中
1android:layout_centerInParent="true" 
2android:layout_centerHorizontal水平居中
3android:layout_centerVertical垂直居中
4android:layout_centerInParent父控件的中央
   

三、层布局:FrameLayout

主要应用在地图APP设计当中,普通软件设计用的不多,从屏幕左上角按照层次堆叠方式布局,后面的空间覆盖前面的控件。

四、绝对布局:AbsoluteLayout

绝对布局通过 android:layout_x及android:layout_y属性定位出坐标绝对位置,不是很常用,因为终端机型比较多,采用绝对定位容易导致显示兼容性不佳的问题。

五、表格布局:TableLayout

每个TableLayout由多个TableRow组成,一个TableRow就是一行,实际上TableLayout就是LinearLayout的验身,只不过固定了以下几个属性的设置:android:orientation="horizontal" android:layout_width=“match_parent”, android:layout_height="wrap_content"。

序号属性说明
1android:shrinkColumns设置可收缩的列,当内容过多的时候则自动收缩显示在第二行
2android:stretchColumns设置可伸展的列,将空白区域填充满整个列的宽度
3android:collapseColumns设置要隐藏的列
4android:layout_column第几列
5android:layout_span占据列数
   

六、网格布局:GridLayout

序号属性说明
1android:orientation=""

组件排序方式

vertival:垂直,默认

horizonal:水平

2android:layout_gravity=""

组件对齐方式

center left right bottom

3android:rowCount="4"设置网格布局为4行
4android:columnCount="4"设置网格布局为4列
5android:layout_row="1"设置组件位于第二行
6android:layout_column="2"设置组件位于第三列
7android:layout_rowSpan="2"纵向横跨2行
8android:layout_columnSpan="3"横向横跨2列

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值