Android——Android布局优化(include、ViewStub、merge)
2014-12-19 19:00
447 查看
一、Android常用布局样式
1.LinearLayout(线性布局)垂直的 水平的
2.RelativeLayout(相对布局)最灵活的
3.TableLayout(表格布局)使用GridView代替
4.AbsoluteLayout(绝对布局)
5.FrameLayout(帧布局)布局叠加时使用
二、Android布局原则
1. 尽量多使用LinearLayout和RelativeLayout,不要使用AbsoluteLayout。
2. 在布局层次一样的情况下,建议使用LinearLayout代替RelativeLayout,因为LinearLayout性能要稍高一些。
3. 将可复用的组件抽取出来并通过include标签使用。
4. 使用ViewStub标签来加载一些不常用的布局。
5. 使用merge标签减少布局的嵌套层次。
三、<include/>的使用
1. 作用:将共用的组件抽取出来单独放到一个xml文件中,然后使用include标签导入共用布局。
2. 效果:提高UI的制作和复用效率,也能保证制作的UI布局更加规整和易维护。
使用:正常新建一个布局xml文件(命名为title.xml),添加控件标签
<include layout="@layout/common_title" />
title.xml的部分内容为
1. 可以降低UI布局的嵌套层次
2. 应用场景:
(1)布局根节点是FrameLayout且不需要设置background或padding等属性,可以用merge代替,同样会有叠加的效果。
(2)某布局作为子布局被其他布局include时,使用merge当作该布局的顶节点(如将LinearLayout换位merge),这样在被引入时顶节点会自动被忽略。
(3)布局顶节点中有background等其他额外属性时,不能用merge
五、使用ViewStub惰性加载
作用:ViewStub标签同include标签一样可以用来引入一个外部布局,不同的是,ViewStub引入的布局默认不会扩张,既不会占用显示,也不会占用位置,从而在解析layout时节省CPU和内存。就是可以认为去控制何时将引入的外部布局加载到界面中来。
用法:
如何加载ViewStub布局
1.LinearLayout(线性布局)垂直的 水平的
2.RelativeLayout(相对布局)最灵活的
3.TableLayout(表格布局)使用GridView代替
4.AbsoluteLayout(绝对布局)
5.FrameLayout(帧布局)布局叠加时使用
二、Android布局原则
1. 尽量多使用LinearLayout和RelativeLayout,不要使用AbsoluteLayout。
2. 在布局层次一样的情况下,建议使用LinearLayout代替RelativeLayout,因为LinearLayout性能要稍高一些。
3. 将可复用的组件抽取出来并通过include标签使用。
4. 使用ViewStub标签来加载一些不常用的布局。
5. 使用merge标签减少布局的嵌套层次。
三、<include/>的使用
1. 作用:将共用的组件抽取出来单独放到一个xml文件中,然后使用include标签导入共用布局。
2. 效果:提高UI的制作和复用效率,也能保证制作的UI布局更加规整和易维护。
使用:正常新建一个布局xml文件(命名为title.xml),添加控件标签
<include layout="@layout/common_title" />
title.xml的部分内容为
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://...." android:background="#000000" android:paddingTop="10dp" android:paddingBottom="10dp"> <TextView ... android:layout_alignParentLeft="true" android:layout_centerVertical="true" android:layout_marginLeft="10dp"/> </RelativeLayout>四、使用merge合并UI布局
1. 可以降低UI布局的嵌套层次
2. 应用场景:
(1)布局根节点是FrameLayout且不需要设置background或padding等属性,可以用merge代替,同样会有叠加的效果。
(2)某布局作为子布局被其他布局include时,使用merge当作该布局的顶节点(如将LinearLayout换位merge),这样在被引入时顶节点会自动被忽略。
(3)布局顶节点中有background等其他额外属性时,不能用merge
五、使用ViewStub惰性加载
作用:ViewStub标签同include标签一样可以用来引入一个外部布局,不同的是,ViewStub引入的布局默认不会扩张,既不会占用显示,也不会占用位置,从而在解析layout时节省CPU和内存。就是可以认为去控制何时将引入的外部布局加载到界面中来。
用法:
<ViewStub android:id="@+id/stub" android:layout="@/layout/xxx />
如何加载ViewStub布局
private ViewStub stub; stub=(ViewStub)findViewById(R.id.stub); stub.inflate();//加载到界面中
相关文章推荐
- Android最佳性能实践——布局优化技巧之<include>、<merge>标签及仅在需要时才加载布局的:ViewStub
- Android布局优化之ViewStub、include、merge使用与源码分析
- Android布局优化技巧--<include>/<merge>/<viewStub>
- android开发之布局优化之include、ViewStub、merge使用与源码分析
- Android布局优化之Merge Include ViewStub使用与源码分析
- Android布局优化之ViewStub、include、merge使用与源码分析
- Android布局优化之ViewStub、include、merge使用与源码分析
- Android布局优化之ViewStub、include、merge使用与源码分析
- Android布局优化之ViewStub、include、merge使用与源码分析
- Android布局优化之Merge Include ViewStub使用与源码分析
- Android 布局优化之include、merge、ViewStub
- Android布局优化之ViewStub、include、merge使用与源码分析
- 我的Android进阶之旅------>Android中的布局优化 include、merge 、ViewStub
- Android布局优化几个重要标签的使用include、merge、ViewStub、requestFocus
- Android布局优化之Merge、Include、ViewStub使用与源码分析
- Android布局优化技巧include、merge、stubView;LinearLayout和RelativeLayout的性能比较
- Android布局优化include 、merge、ViewStub的应用
- Android-布局优化(include , merge , ViewStub)
- Android布局优化之include、ViewStub、merge
- Android 布局优化之——include、merge 、ViewStub