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

xiaoxiao2021-02-28  21

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相同
转载请注明原文地址: https://www.6miu.com/read-2602897.html

最新回复(0)