本文主要是介绍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函数类似。
作者:大橙喵
链接:https://www.jianshu.com/p/ab8a938143ad
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
这篇关于setContentView和inflate的区别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!