DEVLOG 12.8 问题杂记 有关LayoutInflater
Q1: LayoutInflater传递的context干了什么?
A1: 常见的构造layoutInflater的方法:
在第一个方法中需要传入context。仔细查看源码的话回发现如下的调用关系:

LayoutInflater.from其实会最终调用getSystemService,返回一个PhoneLayoutInflater:
所以感觉上直接使用第三种方法,也就是好像会减少调用链?
如果使用第二种方法的话是最快的,因为这个方法可以同Acitivity对应的PhoneWindow中获取在构造window过程中就初始化好的LayoutInflater:
Q2: LayoutInflater中的root的作用,设置root会影响子View的布局过程吗?
A2: Case # 1: root != null && attach2root = true -> 解析当前资源所对应的xml,生成temp。使用当前的root生成layoutparams,并且将当前temp使用这个layoutparams添加到root中。返回root
Case# 2: root == null && attach2root 无论为true或者false -> 解析当前资源所对应的xml,生成temp。返回temp。
Case#3: root != null && attach2root = false -> 解析当前资源所对应的xml,生成temp。使用当前的root生成layoutparams。生成的temp调用setLayoutParams,返回temp。
所以设置root回影响子View的布局,只要root不为空,就会影响。