布局中控件作用及实现原理

1.

标签作用重用布局

  • include标签可以使用单独的layout属性
  • include标签指定了id,同时layout也定义了id,则layout的id会被覆盖
  
  
      
  
      
  
    ...  
  
  

2.

减少视图层级的复用,标签在UI结构化优化起着非常重要的作用,可以减少多余的层级,优化UI。
使用:

  • 用于替换FrameLayout
  • 当一个布局包含另一个布局时,如一个垂直的线性布局,引入了一个垂直的include,使用merge可以消除include布局中的线性布局。
  
  
    

3.
需要时加载,优化初始化UI性能,如不常用的进度条、错误消息等使用viewstub,减少内存使用量,加快布局渲染。它是一个不可见,大小为0的view。

  

使用时加载:

((ViewStub) findViewById(R.id.stub_import)).setVisibility(View.VISIBLE);  
// or  
View importPanel = ((ViewStub) findViewById(R.id.stub_import)).inflate(); 

当调用inflate函数的时候,viewstub被引用的资源替代,并返回引用的view,这样程序可以直接得到view的引用而不用再次调用findViewById来查找
注:viewstub目前不支持merge标签。

你可能感兴趣的:(布局中控件作用及实现原理)