Android 布局优化官方方案

Android 官方提供了三个用来优化布局的标签,分别是include、merge与ViewStub标签。

include布局重用

app开发过程中,会遇到不同页面里有相同的布局,这时我们可以将这些通用的布局提取出来到一个单独的layout文件里,再使用<include>标签引入到相应的页面布局文件里,主要通过includelayout属性引用。

merge减少视图层级

merge标签可用于减少视图层级来优化布局,可以配合include使用,如果include标签的父布局 和 include布局的根容器是相同类型的,那么根容器的可以使用merge代替。
页面布局

ViewStub按需加载

按需加载 顾名思义需要的时候再去加载,不需要的时候可以不用加载,节约内存使用。通常情况我们会使用setVisibility方法来控制视图的显示和隐藏,但是这种情况视图已经加载了。
比如app中页面里某个布局只需要在特定的情况下才显示,其余情况下可以不用加载显示,这时候可以使用ViewStub

总结

  1. 使用include标签可以增加布局的复用性,提高效率。

  2. 使用merge标签可以减少视图树中的节点个数,加快视图的绘制,提高UI性能。

  3. merge标签的使用,看上去一次只减少一个节点,但是当一个布局嵌套很复杂的时候,节点的个数可能达到几百个,这个时候,如果每个地方都多一个节点,视图的绘制时间相应的也就变长了很多。

  4. UI性能的优化还有另外一个比较重要的知识点ViewStub,它是一个View,但是它几乎不占用资源,使用ViewStub能够加快视图的绘制,提高性能。

相关参考
https://zhuanlan.zhihu.com/p/38439099

猜你喜欢

转载自blog.csdn.net/weixin_44008788/article/details/128905011