我是 Android 开发的新手,我对 Android 开发社区中流传的短语“Inflate a View”很好奇。
我知道这与调用LayoutInflater
类的 Inflate 方法有关,但我仍然没有掌握它背后的概念。这基本上意味着通过传递它的 ID 来返回一个视图,就像 JavaScript 的document.getElementById()
那种东西,还是还有更多?任何形式的启蒙都会受到赞赏。
我是 Android 开发的新手,我对 Android 开发社区中流传的短语“Inflate a View”很好奇。
我知道这与调用LayoutInflater
类的 Inflate 方法有关,但我仍然没有掌握它背后的概念。这基本上意味着通过传递它的 ID 来返回一个视图,就像 JavaScript 的document.getElementById()
那种东西,还是还有更多?任何形式的启蒙都会受到赞赏。
它基本上是用于将 xmlLayout
文件实例化为要在 java 代码中使用的对象的术语。您可以通过调用setContentView(R.layout.file name minus xml extension)
或使用来做到这一点LayoutInflater
。只有在充气之后才能称其为孩子Views
。了解这一点很重要,因为我已经看到很多关于 SO 的问题,其中人们的应用程序崩溃了,结果他们试图引用view
类似的
EditText et = (EditText) findViewById(R.id.someID);
并且他们没有调用setContentView()
来获取Layout
which 持有EditText
导致 a 的内容,NPE
因为直到isEditText
才实际存在。Layout
inflated
我确定您已经看过上面的文档,但无论如何它们都在这里
虽然细节肯定比我要说的更复杂,但我认为考虑膨胀视图的最简单方法是从 xml 布局文件到实际View
对象的过程。充斥在许多不同类中的膨胀方法通常都采用一个id
参数,您可以将其设置为R.layout.xxx
.