android布局优化
常用布局样式
- LinearLayout (线性布局)
- RelativeLayout (相对布局)
- TableLayout (表格布局) 使用 GridView 取代
- AbsoluteLayout (绝对布局)
- FrameLayout (帧布局) 布局叠加时使用
各种布局方式按使用量(由高到低)
**1 / 2 > 5 > 3 > 4**
Android布局原则
1. 尽量多使用线性布局和相对布局,不要使用绝对布局
2. 在布局层次一样的情况下,建议使用 LinearLayout 代替 RelativeLayout,因为 LinearLayout 性能要稍高一些;
3. 将可复用的标签抽取出来,并通过 include 标签使用;
4. 使用 ViewStub 标签来加载一些不常用的布局;
5. 使用 merge 标签减少布局的潜逃层次;
布局优化 – include
<Include />
作用:将共用的组件抽取出来单独放到一个 xml 文件中,然后使用 include 标签导入共用布局;
效果:提高 UI 的制作和复用效率,也能保证 UI 的布局更加规整和易维护;
布局优化 – merge
作用:合并 UI 布局,使用该标签能降低 UI 布局的潜逃层次;
场景(1) :布局根节点是 FrameLayout 切不需要设置 background 或 padding 等属性,可以用 merge 代替;
场景(2) :某布局作为子布局被其他布局 include 时,使用 merge 当作该部的顶节点,这样在被引入时顶节点会被自动忽略;
布局优化 – ViewStub(惰性加载)
作用:ViewStub 标签同 include 标签一样可以用来引入一个外部布局,不同的是,ViewStub 引入的布局默认不会扩张,既不会占用显示,也不会占用位置,从而在解析 Layout 时节省 CPU 和内存。