Android中布局解析器inflate()函数详解

LayoutInflater中有重载的两个函数

// 三个参数
public View inflate(int resource, ViewGroup root, boolean attachToRoot) 
参数解释:
1、resource:要添加的布局
2、root:这个参数下面会讲解到--参数1布局是否处于root中(root是否为null决定)
3、attachToRoot:表示是否将第1个参数指定的布局添加到第二个布局当中
分情况
1、当root!=null,attachToRoot=true时
程序会之间将resource指定的布局添加到root中,并且resource布局的根结点属
性都是生效的
注意:当attachToRoot=true的时候,源码里面会自动执行root.addView.所以如果你自己再次调用addView的时候会报异常。
2、当root!=null, attachToRoot=false时
root指定了父容器,attachToRoot=false没有布局添加到父容器中。由于指定了父容器root,所以resource布局的根结点属性会生效
注:root是否为空可以决定resource布局中的根结点属性是否生效
3、当root=null, attachToRoot=true|false
由于root=null,所以resource中根结点的属性不会生效。

两个参数
public View inflate(int resource, ViewGroup root) {
    return inflate(resource, root, root != null);
}
可以看出源码中直接调用的三个参数的函数
root!=null时,跟上面1相同
root==null时,跟上面3相同
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值