1

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

我知道这与调用LayoutInflater类的 Inflate 方法有关,但我仍然没有掌握它背后的概念。这基本上意味着通过传递它的 ID 来返回一个视图,就像 JavaScript 的document.getElementById()那种东西,还是还有更多?任何形式的启蒙都会受到赞赏。

4

2 回答 2

2

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

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

并且他们没有调用setContentView()来获取Layoutwhich 持有EditText导致 a 的内容,NPE因为直到isEditText才实际存在。Layoutinflated

我确定您已经看过上面的文档,但无论如何它们都在这里

于 2013-04-01T22:56:27.043 回答
0

虽然细节肯定比我要说的更复杂,但我认为考虑膨胀视图的最简单方法是从 xml 布局文件到实际View对象的过程。充斥在许多不同类中的膨胀方法通常都采用一个id参数,您可以将其设置为R.layout.xxx.

于 2013-04-01T22:56:53.803 回答