setContentView和inflate的区别

先上代码

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函数类似。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容