先上代码
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函数类似。
作者:大橙喵
链接:https://www.jianshu.com/p/ab8a938143ad
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。