我是 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()
来获取包含 EditText
的 Layout
,这会导致 NPE
因为 EditText
实际上并不存在,直到 Layout
被膨胀
。
我确定您已经看过有关它的文档,但是 Here they are anyway
关于java - LayoutInflater 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15753276/