企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
[TOC] ## From方法是怎么构造LayoutInflater * 不管是LayoutInflater的from方法中的 Context,传递Activity还是Application实际上都会先调用ContextImpl 的 getSystemService() 方法获取一个LayoutInflate * 这个对象是唯一的,只要是从ContextImpl这获取的,就只有一个 * 对于Activity不同的是又调用了 cloneInContext() 方法来获取一个LayoutInflater对象,看上去好像是一个新的对象 ## View.inflate和LayoutInflater.inflate的区别 一些有经验的人会说不要用`View.inflate`而是用`LayoutInflater.inflate`,主要是`View.inflate(context, layoutResId, null)`会让我们在layoutResId布局中声明的宽高信息无效(MATCH\_PARENT或具体宽高),而用`LayoutInflater.from(context).inflate(layoutResId, root, false)`替代,后者没有这个问题。 ## 参考资料 [LayoutInflater详解](https://blog.csdn.net/fei20121106/article/details/105766455)