Android六大布局管理器属性详解
View类支持的常用XML属性及对应的方法
XML属性 | 方法 | 描述 |
---|---|---|
android:background | setBackgroundResource(int) | 设置背景,其属性值为Drawable资源或者颜色值 |
android:clickable | setClickable(boolean) | 设置是否响应单击事件,其属性值为boolean型的true或false |
android:elevation | setElevation(float) | Android API21新添加的,用于设置z轴深度,其属性值为带单位的有效浮点数 |
android:focusable | setFocusable(boolean) | 设置是否可以获取焦点,其属性值为boolean型的true或者false |
android:id | setId(int) | 设置组件的唯一标识符 ID,可以通过findViewById方法获取 |
android:longClickable | setLongClickable(boolean) | 设置是否响应长单击事件,其属性值为boolean型的true或者false |
android:minHeight | setMinimumHeight(int) | 设置最小高度,其属性值为带单位的整数 |
android:minWidth | setMinimunWidth(int) | 设置最小宽度,其属性值为带单位的整数 |
android:onClick | 设置单击事件触发的方法 | |
android:padding | setPaddingRelative(int,int,int,int) | 设置4个边的内边距 |
android:paddingBottom | setPaddingRelative(int,int,int,int) | 设置底边的内边距 |
android:paddingEnd | setPaddingRelative(int,int,int,int) | 设置右边的内边距 |
android:paddingLeft | setPadding(int,int,int,int) | 设置左边的内边距 |
android:paddingRight | setPadding(int,int,int,int) | 设置右边的内边距 |
android:paddingStart | setPaddingRelative(int,int,int,int) | 设置左边的内边距 |
android:paddingTop | setPaddingRelative(int,int,int,int) | 设置顶边的内边距 |
android:visibility | setVisibility(int) | 设置View的可见性 |
ViewGroup.MarginLayoutParams类支持的常用XML属性
XML属性 | 描述 |
---|---|
android:layout_marginBottom | 设置底外边距 |
android:layout_marginEnd | 该属性为Android 4.2新增加的属性,用于设置右外边距 |
android:layout marginLeft | 设置左外边距 |
android:layout marginRight | 设置右外边距 |
android:layout marginStart | 该属性为Android 4.2新增加的属性,用于设置左外边距 |
android:layout marginTop | 设置顶外边距 |
相对布局管理器 | RelativeLayout |
---|---|
线性布局管理器 | LinearLayout |
帧布局管理器 | FrameLayout |
表格布局管理器 | TableLayout |
网格布局管理器 | GridLayout |
约束布局管理器 | ConstraintLayout |
绝对布局管理器(Android2.0被标记过期) | AbsoluteLayout |
布局的通用属性
XML属性 | 描述 |
---|---|
android:id | 设置布局的标识 |
android:layout_width | 设置布局的宽度 |
android:layout_height | 设置布局的高度 |
android:background | 设置布局的背景 |
android:layout_margin | 设置当前布局与屏幕边缘或与周围控件的距离 |
android:padding | 设置当前布局与该布局中控件的距离 |
RelativeLayout(相对布局)支持的常用XML属性
XML属性 | 描述 |
---|---|
android:gravity | 用于设置布局管理器中各子组件的对齐方式 |
android:ignoreGravity | 用于指定哪个组件不受gravity属性的影响 |
android:layout_above | 其属性值为其他UI组件的id属性,用于指定该组件位于哪个组件的上方 |
android:layout_alignBottom | 其属性值为其他UI组件的id属性,用于指定该组件与哪个组件的下边界对齐 |
android:layout_alignLeft | 其属性值为其他UI组件的id属性,用于指定该组件与哪个组件的坐边界对齐 |
androidlayout_alignParentBottom | 其属性值为boolean值,用于指定该组件是否与布局管理器底端对齐 |
android:layout_alignParentLeft | 其属性值为boolean值,用于指定该组件是否与布局管理器左边对齐 |
android:layout_alignParentRight | 其属性值为boolean值,用于指定该组件是否与布局管理器右边对齐 |
android:layout_alignParentTop | 其属性值为boolean值,用于指定该组件是否与布局管理器顶端对齐 |
android:layout_alignRight | 其属性值为其他UI组件的id属性,用于指定该组件与哪个组件的右边界对齐 |
android:layout_alignTop | 其属性值为其他UI组件的id属性,用于指定该组件与哪个组件的上边界对齐 |
android:layout_below | 其属性值为其他UI组件的id属性,用于指定该组件位于哪个组件的下方 |
android:layout_centerHorizontal | 其属性值为boolean值,用于指定该组件是否位于布局管理器水平居中的位置 |
android:layout_centerInParent | 其属性值为boolean值,用于指定该组件是否位于布局管理器的中央位置 |
android:layout_centerVertical | 其属性值为boolean值,用于指定该组件是否位于布局管理器垂直居中的位置 |
android:layout_toLeftOf | 其属性值为其他UI组件的id属性,用于指定该组件位于哪个组件的左侧 |
android:layout_toRightOf | 其属性值为其他UI组件的id属性,用于指定该组件位于哪个组件的右侧 |
LinearLayout(线性布局)支持的常用XML属性
XML属性 | 描述 |
---|---|
android:orientation | 用于设置布局管理器内组件的排列方式,其可选值为horizontal和vertical,默认值为vertical。其中,horizontal 表示水平排列,vertical 表示垂直排列 |
android:gravity | android:gravity属性用于设置布局管理器内组件的显示位置,其可选值包括top,bottom,left,right,center_vertical,fill_vertical, center_horizontal,fill_horizontal,center,fill,clip_vertical和clip_horizontal. 这些属性值也可以同时指定,各属性值之间用竖线隔开( 竖线前后不能有空格)。例如要指定组件靠右下角对齐,可以使用属性值right |
android:layout_width | 用于设置该组件的基本宽度,其可选值有fill_parent,match_parent 和wrap_content, 其中fill_parent表示该组件的宽度与父容器的宽度相同;match_parent与fill_parent 的作用完全相同,从Android 2.2开始推荐使用;wrap_content表示该组件的宽度恰好能包裹它的内容 |
android:layout_height | 用于设置该组件的基本高度,其可选值有fill_parent,match_parent 和wrap_content,其中fill_parent 表示该组件的高度与父容器的高度相同;match_parent 与fill_parent 的作用完全相同,从Android 2.2 开始推荐使用:wrap_content 表示该组件的高度恰好能包裹它的内容 |
android:id | 用于为当前组件指定一个id属性,在Java代码中可以应用该属性单独引用这个组件。为组件指定id 属性后,在R.java文件中,会自动派生一个对应的属性,在Java代码中,可以通过findViewById()方法来获取它 |
android:background | 用于为该组件设置背景,可以是背景图片,也可以是背景颜色,为组件指定背景图片时可以将准备好的背景图片复制到drawable目录下,然后使用下面的代码进行设置android:background=”@drawable/background”如果想指定背景颜色,可以使用颜色值,例如,要向指定背景颜色为白色,可以使用下面的代码android:backround=”#FFFFFFFF” |
LinearLayout(线性布局)子组件的常用XML属性
XML属性 | 描述 |
---|---|
android:layout_gravity | 用于设置组件在其父容器中的位置。它的属性值与android:gravity 属性相同,也是top,bottom,left,right,center_vertical,fill_vertical, center_horizontal,fill_horizontal,center,fill,clip_vertical 和clip_ horizontal。这些属性值也可以同时指定,各属性值之间用竖线隔开,但竖线前后一定不能有空格 |
android:layout_weight | 用于设置组件所占的权重,即用于设置组件占父容器剩余空间的比例。该属性的默认值为0,表示需要显示多大的视图就占据多大的屏幕空间。当设置一个高于零的值时,则将父容器的剩余空间分割,分割的大小取决于每个组件的layout_weight 属性值。例如,在一个320*480的屏幕中,放置一个水平的线性布局管理器,并且在该布局管理器中放置两个组件,并且这两个组件的android:layout_weight 属性值都设置为1,那么,每个组件将分配到父容器的1/2的剩余空间。 |
FrameLayout(帧布局)支持的常用XML属性
XML属性 | 描述 |
---|---|
android:foreground | 设置该帧布局容器的前景图像 |
android:foregroundGravity | 定义绘制前景图像的gravity属性,即前景图像显示的位置 |
TableLayout(表格布局)支持的XML属性
XML属性 | 描述 |
---|---|
android:collapseColumns | 设置需要被隐藏的列的序列号(序号从0开始),多个序列号之间用逗号分隔 |
android:shrinkColumns | 设置允许被收缩的列的序列号(序号从0开始),多个序列号之间用逗号分隔 |
android:stretchColumns | 设置允许被拉伸的列的序列号(序号从0开始),多个序列号之间用逗号分隔 |
布局中空间的常见属性 | |
android:layout_columns | 设置该控件显示的位置 |
android:layout_span | 设置该控件占据几行,默认为1行 |
GridLayout(网格布局)支持的常用XML属性
XML属性 | 描述 |
---|---|
android:columnCount | 用于指定网格的最大列数 |
android:orientation | 用于没有为放入其中的组件分配行和列时,指定其排列方式。其属性值为horizontal表示水平排列;为vertical表示垂直排列 |
android:rowCount | 用于指定网格的最大行数 |
android:useDefaultMargins | 用于指定是否使用默认的边距,其属性值设置为true时,表示使用:为false时,表示不使用 |
android:alignmentMode | 用于指定该布局管理器采用的对齐模式。其属性值为alignBounds时,表示对齐边界;值为alignMargins时,表示对齐边距,默认值为alignMargins |
android:rowOrderPreserved | 用于设置行边界显示的顺序和行索引的顺序是否相同。其属性值为true 表示相同,为false表示不相同 |
android:columnOrderPreserved | 用于设置列边界显示的顺序和列索引的顺序是否相同。其属性值为true 表示相同,为false表示不相同 |
GirdLayout.Layoutparams支持的常用XML属性
XML属性 | 描述 |
---|---|
android:layout_column | 用于指定该子组件位置网格的第几列 |
android:layout_columnSpan | 用于指定该子组件横向跨几列(索引从0开始) |
android:layout_columnWeight | 用于指定该子组件在水平方向上的权重,即该组件分配水平剩余空间的比例 |
android:layout_gravity | 用于指定该子组件采用什么方式占据该网格的空间,其可选值有:top(放置在顶部),bottom(放置在底部),left(放置在左侧),right(放置在右侧) center_vertical (垂直居中),fill_vertical(垂直填满),center horizontal(水平居中),fill_horizontal(水平填满),center (放置在中间),fill (填满),clip_vertical(垂直剪切),clip_horizontal (水平剪切),start(放置在开始位置),end (放置在结束位置) |
android:layout_row | 用于指定该子组件位于网格的第几行(索引从0开始) |
android:layout_rowSpan | 用于指定该子组件纵向跨几行 |
android:layout_rowWeight | 用于指定该子组件在垂直方向上的权重,即该组件分配垂直剩余空间的比例 |
ConstraintLayout(约束布局)
XML属性 | 描述 |
---|---|
layout_constraintLeft_toLeftOf | 控件的左边与另外一个控件的左边对齐 |
layout_constraintLeft_toRightOf | 控件的左边与另外一个控件的右边对齐 |
layout_constraintRight_toLeftOf | 控件的右边与另外一个控件的左边对齐 |
layout_constraintRight_toRightOf | 控件的右边与另外一一个控件的右边对齐 |
layout_constraintTop_toTopOf | 控件的上边与另外一个控件的上边对齐 |
layout_constraintTop_toBottomOf | 控件的上边与另外一个控件的底部对齐 |
layout_constraintBaseline_ toBaselineOf | 控件间的文本内容基准线对齐 |
layout_constraintStart_toEndOf | 控件的起始边与另外一个控件的尾部对齐 |
layout_constraintStart_toStartOf | 控件的起始边与另外一个控件的起始边对齐 |
layout_constraintEnd_toStartOf | 控件的尾部与另外一个控件的起始边对齐 |
layout_constraintEnd_toEndOf | 控件的尾部与另外一个控件的尾部对齐 |
倾向的属性 | |
layout_constraintHorizontal_bias | 横向的倾斜 |
layout_constraintVertical_bias | 纵向的倾斜 |