先说一下一些可能通用的参数
android:layout_width
& android:layout_height
:布局的宽和高,一般不用改,参数选 match_parent 就行
android:background
:布局的背景
android:paddingBottom
&android:paddingRight
&android:paddingLeft
&android:paddingTop
:布局的上下左右边距
android:gravity
:设置布局的重心,也就是组件会往哪里靠,比如如果参数是 center 的话,所有的组件都会在屏幕中间排列,其它同理。可以同时使用多个参数,用 | 分割,如 right|bottom
便是设置为右下角
android:ignoreGrivaty
:设置哪些组件不需要遵循上面设置的 gravity ,参数是布局中组件的 id
相对布局管理器 RelativeLayout
顾名思义,里面所有的元素的位置都是相对的。
教程里提到的参数有十五个,但要注意都是布局中子组件的参数而不是布局本身的参数。
android:layout_above
&android:layout_below
&android:layout_toLeftOf
&android:layout_toRightOf
:参数为其它组件的 id ,设置该组件位于对应 id 的组件外部的上下左右
android:layout_alignParentBottom
&android:layout_alignParentTop
&android:layout_alignParentRight
&android:layout_alignParentLeft
:参数为 ture ,设置组件位于布局的上下左右位置
android:layout_alignBottom
&android:layout_alignTop
&android:layout_alignRight
&android:layout_alignLeft
:参数为其它组件的 id ,设置该组件位于对应 id 的组件内部的上下左右位置
android:layout_centerHorizontal
&android:layout_centerParent
&android:layout_centerVertical
:参数应该也为 true ,设置该组件水平居中、布局正中间、竖直居中
线性布局管理器 LinearLayout
所有组件都是线性排布。
android:orientation
:参数为 horizontal 则该布局管理器为水平布局管理器,参数为 vertical 则为垂直线性布局管理器
子组件参数:android:layout_weight
:设置子组件的权重(分配剩余空间用),用了这个参数的话大概就会充分占据剩余空间,填满一整行或者一整列
帧布局管理器 FrameLayout
顾名思义,所有组件是一帧帧层叠排布的,有点像 PS 里图层的概念。通常用于显示层叠的内容,还可以实现拖动效果。
android:foreground
:为帧布局管理器设置前景图像(前景图像指始终位于最上层的图像)
android:foregroundGravity
:设置前景图像的位置
表格布局管理器 TableLayout
以行和列的方式管理子组件的布局管理器。通过<TableRow>
标签设置一行,标签对中每添加一个组件则为行中的一列。如果不用<TableRow>
标签则一个组件占一行。
android:collapseColumns
:设置哪些列被隐藏,参数为列的序号,从零开始计,多个序号间用逗号分隔
android:stretchColumns
:设置哪些列可以被拉伸,参数同上。设置了这个参数的话一行将会被填满,效果和上面线性布局管理器的android:layout_weight
挺像的,但是要注意,这个是布局管理器的参数,不是子组件的参数,并且是同时控制所有行的
android:shrinkColumns
:设置哪些列可以被压缩,参数同上。当一行显示不下所有组件时,该参数设置的列将会被压缩
网格布局管理器 GridLayout
与表格布局管理器的区别在于,表格只能跨列,网格则是行和列都可以跨。同时表格一行显示不下会跑到屏幕外面去,网格则会(在达到设置的最大列数后)自动换行。
android:columnCount
:设置最大列数
android:rowCount
:设置最大行数
android:oritentation
:设置水平还是竖直,和线性布局管理器一样
子组件参数:
android:layout_grivaty
:设置子组件位于网格空间的何处
android:layout_cloumn
&android:layout_row
:设置子组件位于第几列/第几行,参数为行或列的序号(整数)
android:layout_cloumnSpan
&android:layout_rowSpan
:设置子组件跨几列/几行,参数为一个整数,搭配android:layout_grivaty="fill"
可以使子组件填充满这几行/几列空间
android:layout_columWeight
&android:layout_rowWeight
:设置子组件列与行的权重
最后
如果你看到了这里,觉得文章写得不错就给个赞呗!欢迎大家评论讨论!如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足,定期免费分享技术干货。喜欢的小伙伴可以关注一下哦。谢谢!