本篇博客是在学习郭神的博客后作的学习总结。详细学习请访问原文http://blog.csdn.net/guolin_blog/article/details/43376527。
1.对于重复使用的布局,如custom_head 自定义头布局,放到单独的布局文件中。需要使用时,使用<include>标签进行引用。
2.使用<include>标签时,可能会造成多余的嵌套布局(最外层多一个Layout),降低性能,解决方案使用<merge>标签 配合<include>使用。
3.仅在需要时加载布局,如一个隐藏的布局(在用户进行某一操作下,才显示),我们通常的做法是设置visible属性为invisible或gone,但是这种做法性能表现较低,每个布仍 然有它的宽高背景等。推荐的做法是使用ViewStub,它没有大小,没有绘制能力,也不参与布局,资源消耗非常低。
xml代码中使用如下:
<ViewStub
android:id="@+id/stubview"
android:layout="@layout/layout_header"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
需要注意的是layout 无法使用<merge>标签,故可能会造成嵌套布局。
java中使用如下
ViewStub viewStub = ViewStub findViewById(R.id.stubview);
if(viewStub!=null){ //仅第一次能查找到,故需判断
View view = viewStub.inflat();
.
.
.
}
需要注意的是findViewByid仅在第一次能查找到,需要做非空判断。