LayoutInflater如何工作?

时间:2013-04-01 22:50:36

标签: java android layout view layout-inflater

我是Android开发的新手,我很好奇“膨胀一个视图”这个词,它正在Android开发社区中被抛弃。

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

2 个答案:

答案 0 :(得分:2)

它基本上是用于将xml Layout文件实例化为要在java代码中使用的对象的术语。您可以致电setContentView(R.layout.file name minus xml extension)或使用LayoutInflater来完成此操作。只有在充气后才能召唤其孩子Views。这一点很重要,因为我已经看到很多关于SO的问题,其中人们有一个崩溃的应用程序,事实证明他们试图引用view之类的

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

并且他们没有调用setContentView()来获取Layout,其中EditText导致NPE,因为EditText实际上没有Layout存在直至inflated为{{1}}。

我确定你已经看到了文档,但Here they are anyway

答案 1 :(得分:0)

虽然具体内容肯定比我要说的更复杂,但我认为考虑膨胀视图的最简单方法是从xml布局文件转到实际View对象的过程。通货膨胀方法围绕着许多不同的类别,通常都会采用id参数设置为R.layout.xxx