Android UI优化—使用include标签复用布局

使用include标签复用布局


– 1.include标签的作用

假如说我下图的这个布局在很多界面都用到了,我该怎么办?每个页面都写一遍的话,代码太冗余,并且维护难度加大。
这里写图片描述

复制代码
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:orientation="vertical">

    <include layout="@layout/activity_clude_item"/>
    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
        android:text="这是中间的东西"/>

</LinearLayout>
复制代码

 

 

这里写图片描述

上边的这个布局我就用的include标签,代码显然更加的整洁,并且增加的布局的复用性,降低了app的使用内存

– 2.include标签的用法

<include layout="@layout/activity_clude_item"/>
  • 1

其中我们使用layout="@layout/activity_clude_item"设置复用的布局文件

Android UI优化—优化布局层次

优化布局层次


1.避免布局镶嵌过深(如下)

复制代码
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              xmlns:tools="http://schemas.android.com/tools"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              tools:context=".MainActivity">

    <LinearLayout
        android:id="@+id/main_ll_duoyu"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <TextView
            android:text="@string/hello_world"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="center_horizontal"
            android:layout_gravity="center_vertical"
            >

            <TextView
                android:text="@string/hello_world"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/>

        </LinearLayout>

    </LinearLayout>

</LinearLayout>
复制代码

 

 

 

我们完全可以去掉id为:main_ll_duoyu的这个LinearLayout,也可以实现我们想要的效果(效果如下)
这里写图片描述

2.使用工具查看布局

  • 工具路径

sdk\tools\hierarchyviewer.bat | 双击打开

  • 查看布局对比
    这里写图片描述
    这里写图片描述
    这里写图片描述

我们现在去掉了main_ll_duoyu的这个LinearLayout,我们比一下前两张图和*有一张图,中间少了一层,这里只是给举个例子,可以使用google提供的这些工具帮助我们优化app,增加用户体验的流畅性

3.默认*大布局深度

android 默认的对打布局深度为10