美文网首页
setContentView和inflate的区别

setContentView和inflate的区别

作者: 大橙喵 | 来源:发表于2017-05-04 10:48 被阅读168次

    先上代码

    public class MyActivity extends Activity{
        private TextView tv;
        publicvoid OnCreate(Bundle savedInstanceState){
            super.onCreate(savedInstanceState);
            //setContentView(R.layout.main);
            //tv = (TextView) findViewById(R.id.tv);
            LayoutInflater inflate = LayoutInflater.from(this);
            View view = inflate.inflate(R.layout.main,null);
            setContentView(view);
        }
    }
    

    实际情况中 注释掉的代码和没有注释的效果相同,可以证明,setContentView一旦调用则立刻显示View而LayoutInflater只是创建一个View对象而不显示出来.
    实际情况中,又可能我们需要在Activity中动态改变View,那么就需要使用LayoutInflater来先创建一个View对象再对Activity设置setContentView.

     public View inflate(int Resourece,ViewGroup root)
    

    作用: 填充一个新的视图层次结构从指定的XML资源文件中
    reSource: View的layout的ID
    root: 生成的层次结构的根视图
    return: 填充的层次结构的根视图。如果参数root提供了,那么root就是根视图;否则填充的XML文件的根就是根视图。
    其余几个重载的inflate函数类似。

    相关文章

      网友评论

          本文标题:setContentView和inflate的区别

          本文链接:https://www.haomeiwen.com/subject/alurtxtx.html