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:
复制代码