LayoutInflater的理解
2016/1/13 16:20:08
LayoutInflater的inflate方法分析
inflater.inflate(待加载布局,给该布局嵌套一个父布局,是否加载到父布局);
View view = inflater.inflate(R.layout.button_layout, main_layout);
View view = inflater.inflate(R.layout.button_layout, main_layout,true);
//加载一个布局到父布局,不填写参数、默认为true 上面两句代码效果一样
View view = inflater.inflate(R.layout.button_layout, main_layout,false);
//不加载到父布局,但是使用父布局的属性。若要加载需要通过父布局addView的方法加载
View view = inflater.inflate(R.layout.button_layout, null,true);
父布局调用addView后,view的宽高不会显示自己的属性,而是用父布局的属性。
//父布局为null,后面的参数无效
自定义View
分析Adatper里的一句代码
@Override
public View getView(int i , View view , ViewGroup parent)
{
view = inflater.inflate(R.layout.list_item, parent);
}
- view 是指list_item里面的根标签
- parent 是指外部使用该Item的控件,即ListView
- 由于adapter默认就是要将View加入到ViewGroup里,所以设置第三个参数是无效的。