1. RelativeLayout
常用属性
第一类:属性值为true或false,如果对应的兄弟元素找不到的话就以父元素做参照物
android:layout_centerHrizontal 水平居中
android:layout_centerVertical 垂直居中
android:layout_centerInparent 相对于父元素完全居中
android:layout_alignParentBottom 贴紧父元素的下边缘
android:layout_alignParentLeft 贴紧父元素的左边缘
android:layout_alignParentRight 贴紧父元素的右边缘
android:layout_alignParentTop 贴紧父元素的上边缘
android:layout_alignWithParentIfMissing
复制代码
Java:
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT); //居中
复制代码
第二类:属性值必须为id的引用名“@id/id-name”
android:layout_below 在某元素的下方
android:layout_above 在某元素的的上方
android:layout_toLeftOf 在某元素的左边
android:layout_toRightOf 在某元素的右边
android:layout_alignTop 本元素的上边缘和某元素的的上边缘对齐
android:layout_alignLeft 本元素的左边缘和某元素的的左边缘对齐
android:layout_alignBottom 本元素的下边缘和某元素的的下边缘对齐
android:layout_alignRight 本元素的右边缘和某元素的的右边缘对齐
复制代码
第三类:属性值为具体的像素值,如30dip,40px
android:layout_marginBottom 离某元素底边缘的距离
android:layout_marginLeft 离某元素左边缘的距离
android:layout_marginRight 离某元素右边缘的距离
android:layout_marginTop 离某元素上边缘的距离
复制代码
代码属性设置:在代码中,需要通过 Layout 的 LayoutParams去设置某个 View 的布局参数,得到某个 View 的布局参数:(其必须强制转换成XML中的对应的布局)
RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams)
voice_time.getLayoutParams();
lp.addRule(RelativeLayout.LEFT_OF, R.id.bq_view);
lp.setMargins(0,0,ScreenUtils.dip2px(context, 3),0);
voice_time.setLayoutParams(lp);
复制代码
addRule: 设置依靠 RelativeLayout.LEFT_OF :在 voice_time 的 left of 是 R.id.bq_view,就是 voice_time 的右边是 R.id.bq_view,其他类似
setMargins: 设置 Margins,参数:左上右下,单位是 px
2. GridLayout
GridLayout网格布局。先指定行和列,其内的控件便自动换行排列
android:orientation="horizontal" // 指定竖向还是横向排列
android:rowCount="4" // 行
android:columnCount="4" // 列
复制代码
子控件:
android:layout_rowWeight 设置子控件行的比重
android:layout_columnWeight 设置子控件列的比重
android:layout_row : 固定显示在第几行。
android:layout_column : 固定显示在第几列,前面几列没控件的话就空着。
android:layout_rowSpan : 跨几行
android:layout_columnSpan: 跨几列
复制代码
例如一个计算器布局可以用 gridLayout:
"1"
android:orientation="horizontal"
android:rowCount="4"
android:columnCount="4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android">
复制代码