Android布局优化技巧

一.总体原则:减少布局层次,加快渲染速度

  • 当线性布局LinearLayout和相对布局都能使用时,优先使用线性布局LinearLayout,因为RelativeLayout会让子View调用2次onMeasure,onMeasure的耗时越长效率越低。
  • 尽量避免RelativeLayout嵌套RelativeLayout

二.重用< include/>

< include>标签可以在一个布局中引入另外一个布局,重用共同的布局文件。

比如说共同的标题栏common_title.xml




    

    

    


然后在activity_title.xml文件中引用




    


显示效果:

Android布局优化技巧_第1张图片
这里写图片描述

三.使用< merge/>标签来减少视图层级结构

比如说,主布局是线性布局,include进来的布局也是一个线性布局,这时候,include进来的线性布局就是多余的,可以用merge标签代替

title.xml



    

    

在一个线性布局中inclde引入




    


显示效果:

Android布局优化技巧_第2张图片
这里写图片描述

三.ViewStub

ViewStub 是一个轻量级的View,宽和高都为0,实现View的延迟加载,避免资源的浪费,减少渲染时间,在需要的时候才加载View。

activity_title.xml




    


common_title1.xml





    


    

TitleActivity.java

package com.zhoujian.mykeep.activity;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.ViewStub;

import com.zhoujian.mykeep.R;

/**
 * Created by zhoujian on 2017/3/17.
 */

public class TitleActivity extends AppCompatActivity
{
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_title);

        ((ViewStub) findViewById(R.id.stub)).setVisibility(View.VISIBLE);
       // View importPanel = ((ViewStub) findViewById(R.id.stub)).inflate();
    }

}

显示效果:

Android布局优化技巧_第3张图片
这里写图片描述

四.TextView同时显示文字和图片

首先,上一张图片:

Android布局优化技巧_第4张图片
这里写图片描述

大家看到这种布局的时候,首先会想到一个线性布局包裹6个相对布局,每一个相对布局包含一个TextView和两个Imageview

其实,只要一个线性布局包含6个TextView就可以搞定!

优化后的代码





    


    


    


    


    


    


    




五.线性布局自带的分割线

首先上一张图片:

Android布局优化技巧_第5张图片
这里写图片描述

每个条目下面都有一天分割线,一般的做法是用一个高为1dp的view来表示

优化后的代码



    
    
    
    


    


    


    


    


    




核心代码就是给线性布局设置divider

   android:divider="@drawable/divider_line"
   android:dividerPadding="16dp"
   android:showDividers="middle"

divider_line.xml




    

      


五.Space控件

Space:空间的意思,表示该控件占据一定的空间,但是却不显示任何东西。

首先上一张图:

Android布局优化技巧_第6张图片
这里写图片描述

优化后的代码:

common_title5.xml




    


    


        


        

    


    


    


        


        

    


    


    


    


    




六.TextView的行间距

首先上一张图:

Android布局优化技巧_第7张图片
这里写图片描述

看到这个布局,我们首先会想到的是一个横向的线性布局包裹着一个竖直方向的线性布局和一个Imageview,竖直方向的线性布局里面包裹着四个TextView

优化后的代码:

common_title6.xml





    

    

        

        
    

android:lineSpacingExtra="12dp"表示行间距

总结:以上就是有关布局优化的一些技巧,具体的使用场景还要根据项目具体需求而定!

你可能感兴趣的:(Android布局优化技巧)