Android Studio开发学习(七)———RelativeLayout(相对布局)

本文讨论了LinearLayout在复杂布局中的效率问题,提出使用RelativeLayout通过相对定位来提高UI渲染速度,减少嵌套层次,以及利用parent或margin/padding进行方便的组件定位。
摘要由CSDN通过智能技术生成

 在上期中我们对LinearLayout进行了详细的解析,LinearLayout也是我们用的比较多的一个布局,更多的时候更钟情于它的 weight(权重) 属性,等比例划分,对屏幕适配还是 帮助蛮大的;但是使用LinearLayout的时候也有一个问题,就是当界面比较复杂的时候,需要嵌套多层的LinearLayout,这样就会降低UI Render的效率(渲染速度),而且如果是listview或者GridView上的item,效率会更低,另外太多层LinearLayout嵌套会占用更多的系统资源,还有可能引发stackoverflow; 但是如果我们使用RelativeLayout的话,可能仅仅需要一层就可以完成了,以父容器或者兄弟组件参考+margin +padding就可以设置组件的显示位置,是比较方便!当然,也不是绝对的,具体问题具体分析吧!

一、根据父容器定位

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/main"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
<!--    layout_alignParentLeft: 左对齐-->
    <androidx.appcompat.widget.AppCompatButton
        android:layout_width="120dp"
        android:layout_height="100dp"
        android:layout_alignParentLeft="true"
        android:background="#ff2328"
        android:text="1" />
<!--    layout_alignParentRight:右对齐-->
    <androidx.appcompat.widget.AppCompatButton
        android:layout_width="80dp"
        android:layout_height="40dp"
        android:layout_alignParentRight="true"
        android:background="#aaa72d"
        android:text="2" />
<!--    layout_alignParentTop: 顶部对齐-->
    <androidx.appcompat.widget.AppCompatButton
        android:layout_width="80dp"
        android:layout_height="40dp"
        android:layout_alignParentTop="true"
        android:background="#00aa7d"
        android:text="3" />
<!--    layout_alignParentBottom: 底部对齐-->
    <androidx.appcompat.widget.AppCompatButton
        android:layout_width="80dp"
        android:layout_height="40dp"
        android:layout_alignParentBottom="true"
        android:background="#2eaa0f"
        android:text="4" />
<!--    android:layout_centerHorizontal: 水平居中-->
    <androidx.appcompat.widget.AppCompatButton
        android:layout_width="80dp"
        android:layout_height="40dp"
        android:layout_centerHorizontal="true"
        android:background="#aa7fa9"
        android:text="5" />
<!--    andriod:layout_centerVertical: 垂直居中-->
    <androidx.appcompat.widget.AppCompatButton
        android:layout_width="80dp"
        android:layout_height="40dp"
        android:layout_centerVertical="true"
        android:background="#77b8ff"
        android:text="6" />
<!--    android:layout_centerInParent: 中间位置-->
    <androidx.appcompat.widget.AppCompatButton
        android:layout_width="80dp"
        android:layout_height="40dp"
        android:layout_centerInParent="true"
        android:background="#cc58be"
        android:text="7" />
</RelativeLayout>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值