Java 平面布置是如何工作的?

Java 平面布置是如何工作的?,java,android,layout,view,layout-inflater,Java,Android,Layout,View,Layout Inflater,我对安卓开发还不熟悉,我对安卓开发社区中流传的“膨胀视图”一词感到好奇 我知道这与调用LayoutInflater类的充气方法有关,但我还没有掌握它背后的概念。这基本上意味着像JavaScript的document.getElementById()之类的东西一样,通过传递视图ID来返回视图,还是说还有更多?任何形式的启发都将受到赞赏。它基本上是一个术语,用于将xml布局文件实例化为java代码中使用的对象。您可以通过调用setContentView(R.layout.file name减去xml

我对安卓开发还不熟悉,我对安卓开发社区中流传的“膨胀视图”一词感到好奇


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

它基本上是一个术语,用于将xml
布局文件实例化为java代码中使用的对象。您可以通过调用
setContentView(R.layout.file name减去xml扩展名)
或使用
LayoutInflater
来完成此操作。只有在充气后,才能调用其子视图
。知道这一点很重要,因为我看到很多关于SO的问题,其中人们有一个应用程序崩溃,结果他们试图引用一个
视图

EditText et = (EditText) findViewById(R.id.someID);
而且他们没有调用
setContentView()
来获取
布局
,该布局保存
EditText
,这将导致
NPE
,因为
EditText
直到
布局
膨胀后才实际存在


我相信您已经看到了上面的文档,但是尽管细节肯定比我要说的要复杂,但我认为膨胀视图的最简单方法是从xml布局文件到实际的
视图对象的过程。膨胀方法围绕着许多不同的类,通常都采用
id
参数,您可以将其设置为
R.layout.xxx

你的答案很有条理+1.