【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:

<GridLayout android:layout_weight="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">
    <Button
        android:layout_margin="10px"
        android:id="@+id/key_number_7"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="7"
        android:textSize="30pt"/>
    <Button
        android:layout_margin="10px"
        android:id="@+id/key_number_8"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="8"
        android:textSize="30pt"/>
    <Button
        android:layout_margin="10px"
        android:id="@+id/key_number_9"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="9"
        android:textSize="30pt"/>
    <Button
        android:layout_margin="10px"
        android:id="@+id/key_number_chu"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="÷"
        android:textSize="30pt"/>
    <Button
        android:layout_margin="10px"
        android:id="@+id/key_number_4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="4"
        android:textSize="30pt"/>
    <Button
        android:layout_margin="10px"
        android:id="@+id/key_number_5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="5"
        android:textSize="30pt"/>
    <Button
        android:layout_margin="10px"
        android:id="@+id/key_number_6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="6"
        android:textSize="30pt"/>
    <Button
        android:layout_margin="10px"
        android:id="@+id/key_number_cheng"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="×"
        android:textSize="30pt"/>
</GridLayout>
复制代码

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值