Android布局优化(1)

Include、Merger、ViewStub用法

Include使用

 使用方式


   
       
   

 被重用布局:layout_1


   

 include标签说名
 layout:必须使用,即被重用布局名称

Merger:减少视图层级

 Merger消除视图层次结构中多余的层级。例如:当前布局根为LinearLayout,通过include引入一个重复的根布局为LinearLayout,此时就会增加视图中的层级,可以使用Merger代替重用布局中的根。如下列所示:




   

   

 被Merger布局名称:merger_layout




   

 总结:通常Merger是配合include使用,减少布局层级

ViewStub:占位

 简介:当需要时才会加载,不会影响UI初始化性能。ViewStub为不可见,大小为0的View,需要在代码中动态动态加载,通过setVisibility或者Inflate函数才会将布局显示出来。ViewStub所要替代的layout文件中不能有标签以及ViewStub在加载完后会被移除,或者说是被加载进来的layout替换掉。

 使用方式:




    

    


 动态加载布局:view_stub_layout.xml




    

 在代码中使得ViewStub布局显示出来

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //ViewStub visible或者inflate,则ViewStub将从视图框架中移除,只能visible或inflate一次
        //方式一
        View viewStub = findViewById(R.id.view_stub);
        viewStub.setVisibility(View.VISIBLE);

        //方式二
        ViewStub viewStubInflate = findViewById(R.id.view_stub);
        viewStubInflate.inflate();
    }
}

你可能感兴趣的:(Android布局优化(1))