java - LayoutInflater 是如何工作的?

标签 java android layout view layout-inflater

我是 Android 开发的新手,我对 Android 开发社区中流传的“Inflate a View”这个词很好奇。

我知道它与调用 LayoutInflater 类的 Inflate 方法有关,但我仍未掌握其背后的概念。这是否基本上意味着像 JavaScript 的 document.getElementById() 之类的东西一样通过传递其 ID 来返回 View ,或者还有更多?任何形式的启蒙都将不胜感激。

最佳答案

它基本上是用于将 xml Layout 文件实例化为要在 java 代码中使用的对象的术语。您可以通过调用 setContentView(R.layout.file name minus xml extension) 或使用 LayoutInflater 来完成此操作。只有在膨胀之后才能调用它的子 Views。了解这一点很重要,因为我在 SO 上看到过很多问题,其中人们的应用程序崩溃了,结果他们试图引用一个 view 之类的

EditText et = (EditText) findViewById(R.id.someID);

而且他们还没有调用 setContentView() 来获取包含 EditTextLayout,这会导致 NPE 因为 EditText 实际上并不存在,直到 Layout膨胀

我确定您已经看过有关它的文档,但是 Here they are anyway

关于java - LayoutInflater 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15753276/

相关文章:

java - spring 与 activemq 集成

android - 密码生成器显示kotlin.Unit

android - 将样式更改为 MaterialComponents 后溢出菜单背景颜色消失

css - 布局使两个下拉菜单并排放置

java - Java中方法名前的下划线是什么意思?

java - 删除数据库中没有的单词

java - 使用 spring mvc 获取 URL 参数

android - 在导入路径中找不到标记为 'extensions' 的模块

html - 使用 CSS 进行 3 列布局,左/右可变大小,中间流体

css - Flexbox:如何通过超大的子元素(沿横轴)不过度拉伸(stretch)嵌套的 Flexbox