Android优化篇 ViewStub按需加载布局


原文链接

更多教程


你将学到

1.ViewStub标签的使用姿势
2.ViewStub标签的使用例子
3.ViewStub标签的使用注意点

ViewStub标签的使用姿势

  • 步骤一:定义需要懒加载的布局 test.xml



    
        

  • 步骤二:使用ViewStub引入要懒加载的布局



    
  • 步骤三:使用代码按需加载上面的ViewStub布局
    这里是点击按钮的时候添加:
Button button = (Button) findViewById(R.id.button);
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            View view = ((ViewStub)findViewById(R.id.view_stub)).inflate();  //加载出来用view接收
            TextView tv = (TextView) view.findViewById(R.id.text_view); //然后可以用view访问它的子控件
            tv.setText("ViewStub的使用");
    }
});

效果:
点击按钮前:


Android优化篇 ViewStub按需加载布局_第1张图片

点击按钮后,出现了需要临时加载的布局:


Android优化篇 ViewStub按需加载布局_第2张图片

ViewStub使用注意点

  • ViewStub对象只可以Inflate一次,之后ViewStub对象会被置为空。
    所以,inflate一个ViewStub对象之后,就不能再inflate它了,否则会报错:ViewStub must have a non-null ViewGroup viewParent。。
Android优化篇 ViewStub按需加载布局_第3张图片
  • ViewStub不支持merge标签,意味着你不能引入包含merge标签的布局到ViewStub中。
    否则会报错:android.view.InflateException: Binary XML file line #1: can be used only with a valid ViewGroup root and attachToRoot=true

原文链接

更多教程

你可能感兴趣的:(Android优化篇 ViewStub按需加载布局)