【问题标题】:How does LayoutInflater work?LayoutInflater 是如何工作的?
【发布时间】:2013-04-01 22:50:36
【问题描述】:

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

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

【问题讨论】:

    标签: java android layout view layout-inflater


    【解决方案1】:

    它基本上是用于将 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 实际上并不存在,直到Layoutinflated .

    我确定您已经看过上面的文档,但 Here they are anyway

    【讨论】:

    • 您的答案结构合理。 +1
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2016-09-09
      • 1970-01-01
      • 2012-03-28
      • 1970-01-01
      • 1970-01-01
      • 2011-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多