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.