LayoutInflater类里的inflate方法类似于findViewById,它是把一个xml布局文件加载成为View对象。
和setContentView的最大区别在于,setContentView是加载该布局文件后马上显示出来。
获得LayoutInflater对象的方法有三种
(1)LayoutInflater.from(this)
(2)Activity里的getLayoutInflater
(3)上下文里的getSystemService(Context.LAYOUT_INFLATER_SERVICE)
参数的含义见代码:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ViewGroup vg = (ViewGroup) findViewById(R.id.linearLayout);
View view = LayoutInflater.from(this).inflate(R.layout.test, vg, true);
}
}
以上代码可的出来的结果是,会把R.layout.test这个文件加载到main.xml的ID是linearLayout这个布局里,
并且马上显示出来,所以true的意思就是这样。如果第三个参数是false的话,结果就是R.layout.test也会
加载到这里面,但是不会显示出来,而是以一个View对象返回了,你需要什么时候加就什么时候加。