【Code-Snippet】常用布局

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">
    

转载于:https://juejin.im/post/5c91a3c8f265da60cd2b54ac

你可能感兴趣的:(移动开发,java)