欢迎光临散文网 会员登陆 & 注册

DEVLOG 12.8 问题杂记 有关LayoutInflater

2021-12-08 20:47 作者:房顶上的铝皮水塔  | 我要投稿

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不为空,就会影响。







DEVLOG 12.8 问题杂记 有关LayoutInflater的评论 (共 条)

分享到微博请遵守国家法律