<include>标签
<include>标签可以将一个指定的布局加载到当前布局中,增加布局的重用,在布局中的使用方法如下:
注意点:
1、只支持android:layout_开头的属性(id属性例外)
2、如果包含的布局文件的根元素也指定了id属性,则以<include>指定的为准
3、android:layout_width和android:layout_height必须存在,否则其他android:layout_*形式的属性无法生效
<merge>标签
<merge>标签主要用来进行UI布局层次优化的,可以删除多余的层级。使用方法如下:
注意点:
1、多和<include>标签使用
2、<merge>标签仅仅能作为XML布局的根标签使用
3、当Inflate以<merge>标签开头的布局文件时,必须指定一个父ViewGroup,而且必须设定attachToRoot为true
<ViewStub>标签
<ViewStub>简介
1、java代码中的ViewStub类继承自View
2、宽/高都为0,本身不参与任何的布局和绘制
3、相当于一个占位符,可以做到按需加载(延迟加载)
xml布局中使用如下:
<ViewStub>标签的按需加载
方式一:
方式二:
其他UI优化技巧
1、减少View的onDraw()中的复杂性,不在里面进行内存分配
2、尽量使用有参的invalidate()方法
3、尽量利用系统自带的资源
……