布局管理器——相对布局

介绍

相对布局由RelativeLayout代表,相对布局容器内子组件的位置总是相对兄弟组件、父容器来决定。

如果A组件的位置是由B组件的位置来决定的,Android要求先定义B组件,再定义A组件

为了控制该布局容器中各个子组件的布局分布,RealativeLayout提供了一个内部类:RelativeLayout.LayoutParams,该类提供了大量的XML属性来控制RelativeLayout布局容器中子组件的布局分布。

由于RelativeLayout.LayoutParams继承了android.view.ViewGroup.MarginLayoutParams,因也可以使用其父类所支持的各XML属性。


用例

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <!--定义该组件位于父容器中间-->
        <TextView
            android:id="@+id/view01"
            android:layout_width="@android:dimen/notification_large_icon_height"
            android:layout_height="@android:dimen/notification_large_icon_height"
            android:layout_centerVertical="true"
            android:layout_centerHorizontal="true"
            android:background="@drawable/leaf" />

        <!--定义该组件位于view01组件上方-->

        <TextView
            android:id="@+id/view02"
            android:layout_width="@android:dimen/notification_large_icon_height"
            android:layout_height="@android:dimen/notification_large_icon_width"
            android:layout_above="@+id/view01"
            android:layout_alignLeft="@+id/view01"
            android:background="@drawable/leaf" />

        <!--定义该组件位于view01组件下方-->

        <TextView
            android:id="@+id/view03"
            android:layout_width="@android:dimen/notification_large_icon_height"
            android:layout_height="@android:dimen/notification_large_icon_width"
            android:layout_alignLeft="@id/view01"
            android:layout_below="@id/view01"
            android:background="@drawable/leaf" />

        <!--定义该组件位于view01组件的左侧-->

        <TextView
            android:id="@+id/view04"
            android:layout_width="@android:dimen/notification_large_icon_height"
            android:layout_height="@android:dimen/notification_large_icon_width"
            android:layout_alignTop="@id/view01"
            android:layout_toLeftOf="@id/view01"
            android:background="@drawable/leaf" />

        <!--定义该组件位于view01组件的右边-->
        <TextView
            android:id="@+id/view05"
            android:layout_width="@android:dimen/notification_large_icon_width"
            android:layout_height="@android:dimen/notification_large_icon_height"
            android:layout_alignTop="@id/view01"
            android:layout_toRightOf="@id/view01"
            android:background="@drawable/leaf" />

    </RelativeLayout>
</LinearLayout>

相应地界面展示结果:

图1


摘自《疯狂Android讲义》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值