如何高性能布局
2015-08-02 20:44
211 查看
RelativeLayout Vs LineLayout
尽可能的使用RelativeLayout,不要使用绝对布局AbsoluteLayout,在布局层次一样的情况下,建议使用LineLayout代替RelativeLayout,因为LineLayout性能要稍高一点,但往往RelativeLayout可以实现LineLayout嵌套才能实现的布局。
2. include
在实际开发中,我们经常会遇到一些公用的UI组件,比如导航栏,如果每个布局文件中都去在xml里面写相关代码,将会产生大量的工作量。同时如果要对布局发生改变,需要修改很多xml里面的代码,通过include可以实现在多个布局文件中引用同一块布局文件,或者采用组合控件的方式代替include也是不错的选择。
3. viewStub
懒加载,viewstub标签同include标签一样可以用来引入一个外部布局,不同的是,viewstub引入的布局默认不会扩展,既既不会占用位置,从而在解析layout布局文件的时候节省cpu和内存,viewstub常用来引入那些默认不显示,只有在特殊情况下显示的布局,如加载布局,网络失败布局,显示的刷新布局,形式出错的提示布局等。
4. merge
合并UI布局,有些时候lint工具会给出提升,所以可以依靠android的lint工具去使用merge去修改和优化布局文件,使用该标签主要是减少布局的嵌套层次。
布局根节点为framelayout且不设置background或者padding等属性,可以使用merge来代替,因为可以用merge消除一个节点。
某布局作为子布局被其他布局include时候,使用merge当作该布局的顶点,这样在被引入时顶节点会被自动忽略,而其子节点全部合并主布局里面去。
笔记是在学习麦子学院视频过程中整理的,大家没事也可以上去学习下,有很多技术类的在线视频 http://www.maiziedu.com/course/android/
尽可能的使用RelativeLayout,不要使用绝对布局AbsoluteLayout,在布局层次一样的情况下,建议使用LineLayout代替RelativeLayout,因为LineLayout性能要稍高一点,但往往RelativeLayout可以实现LineLayout嵌套才能实现的布局。
2. include
在实际开发中,我们经常会遇到一些公用的UI组件,比如导航栏,如果每个布局文件中都去在xml里面写相关代码,将会产生大量的工作量。同时如果要对布局发生改变,需要修改很多xml里面的代码,通过include可以实现在多个布局文件中引用同一块布局文件,或者采用组合控件的方式代替include也是不错的选择。
3. viewStub
懒加载,viewstub标签同include标签一样可以用来引入一个外部布局,不同的是,viewstub引入的布局默认不会扩展,既既不会占用位置,从而在解析layout布局文件的时候节省cpu和内存,viewstub常用来引入那些默认不显示,只有在特殊情况下显示的布局,如加载布局,网络失败布局,显示的刷新布局,形式出错的提示布局等。
4. merge
合并UI布局,有些时候lint工具会给出提升,所以可以依靠android的lint工具去使用merge去修改和优化布局文件,使用该标签主要是减少布局的嵌套层次。
布局根节点为framelayout且不设置background或者padding等属性,可以使用merge来代替,因为可以用merge消除一个节点。
某布局作为子布局被其他布局include时候,使用merge当作该布局的顶点,这样在被引入时顶节点会被自动忽略,而其子节点全部合并主布局里面去。
笔记是在学习麦子学院视频过程中整理的,大家没事也可以上去学习下,有很多技术类的在线视频 http://www.maiziedu.com/course/android/
相关文章推荐
- 关于System V 信号量
- Android开发经典笔试面试题汇总(持续更新中)
- 敏捷开发下该深度思考的三个问题
- Shell 学习14 - Shell printf 命令
- hdoj 最简单的计算机
- ViewPager+Fragment问题
- 【剑指Offer面试题】 九度OJ1369:字符串的排列
- Taglib
- 学习笔记开始了,加油!
- 新的开始
- UITextFieldAndButton
- 剑指Offer面试题20(Java版):顺时针打印矩阵
- android opencv 人脸检测
- BZOJ 2456 mode
- HDU 1175 连连看
- Asp.net-知识总结(1)
- 在移动HTML5页面input类型采用number无法控制长度,以及右边显示难看的加减按钮
- 策略型业务逻辑处理选择
- 黑马程序员---iOS基础----OC中的点语法、构造方法
- 练习使用条件编译