andriod相对布局

相对布局:

       见名知意,相对布局就是组件间的布局,与线性布局的区别是,线性布局是控制整个组件间的垂直或者水平的排列方式,线性布局只能调整子组件相对于父组件的位置,它调整不了同一级子组件之间的位置关系。也就是说线性布局不能调整同级组件之间的关系。而相对布局可以调整同级组件之间的位置关系(当然相对布局不能调整组件的排列方式(垂直、水平))。总的来说只要是调整同级组件之间的位置关系,都需要用到相对布局。

相对布局的属性:

   第一类:属性值为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 如果对应的兄弟元素找不到的话就以父元素做参照物

 第二类:属性值必须为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

         Margin:设置组件与父容器(通常是布局)的边距

        android:layout_margin: 指定控件的四周的外部留出一定的边距

        android:layout_marginLeft: 指定控件的左边的外部留出一定的边距

        android:layout_marginTop: 指定控件的上边的外部留出一定的边距

        android:layout_marginRight: 指定控件的右边的外部留出一定的边距

        android:layout_marginBottom: 指定控件的下边的外部留出一定的边距

        Padding:设置组件内部元素间的边距(可以理解为填充)

       android:padding :指定控件的四周的内部留出一定的边距

       android:paddingLeft: 指定控件的左边的内部留出一定的边距

       android:paddingTop: 指定控件的上边的内部留出一定的边距

      android:paddingRight: 指定控件的右边的内部留出一定的边距

      android:paddingBottom: 指定控件的下边的内部留出一定的边距

<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <TextView
        android:id="@+id/ws1"
        android:layout_width="96dp"
        android:layout_height="100dp"
        android:background="#b2dfdb"
        android:text="第一块"/>
    <TextView
        android:id="@+id/ws2"
        android:layout_width="96dp"
        android:layout_height="100dp"
        android:layout_toRightOf ="@id/ws1"
        android:background="#80cbc4"
        android:text="第二块"/>
    <TextView
        android:id="@+id/ws3"
        android:layout_width="96dp"
        android:layout_height="100dp"
        android:layout_toRightOf ="@id/ws2"
        android:background="#4db6ac"
        android:layout_weight="10"
        android:text="第三块"/>

</RelativeLayout>

 

 

                                                                                                               

<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <TextView
        android:id="@+id/ws1"
        android:layout_width="96dp"
        android:layout_height="100dp"
        android:background="#b2dfdb"
        android:text="第一块"/>
    <TextView
        android:id="@+id/ws2"
        android:layout_width="96dp"
        android:layout_height="100dp"
        android:layout_marginLeft  ="100dp"
        android:background="#8BC34A"
        android:text="第二块"/>
    <TextView
        android:id="@+id/ws3"
        android:layout_width="96dp"
        android:layout_height="100dp"
        android:layout_marginLeft ="130dp"
        android:background="#FF5722"
        android:layout_weight="10"
        android:text="第三块"/>

</RelativeLayout>

 

                                                             

 

       在使用相对元素的属性值为具体的像素值时需要注意,因为相对的是父元素,本例子中相对的是整个界面的左边,所以第二块和第三块才会有重叠。从这里也可以发现,第三块吧把第二块的遮盖住了(这里的具体原因,目前还未了解,与帧布局有点类似,大胆猜测一下,所有的同级组件之间的布局方式默认方式和帧布局一样,最后得出帧布局只是一种强制默认布局的一种布局或者说andriod解析时按照从上到下解析 下边的布局优先级默认比前面的高会将前面的覆盖)

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值