我遇到了很多人似乎遇到过的findViewById()返回NULL问题。我了解到,只有在View用onFinishInflate()夸大 View 之后才可以调用findViewById()。我的问题是-什么是通货膨胀率?

在 Activity 中,我调用setContentView(R.layout.testview),它应该调用View构造函数,还应该调用onDraw()。这样会使 View 膨胀吗?如果是这样,为什么要有一个LayoutInflater和一个实际上可以使 View 膨胀的函数呢?实际上,即使渲染了整个 View 并且能够与程序进行交互,在我的代码中也从未调用onInflateView()。这告诉我,View膨胀与调用View的构造函数和onDraw()函数有所不同。有人可以解释吗?

编辑:另外,我有一个使用onDraw()函数绘制的自定义 View 。某种程度上,从来没有为我调用过onFinishInflate()函数。这可能是什么原因?

-P

最佳答案



View 膨胀是将布局XML文件转换为对应的View对象树的行为。您可以使用LayoutInflater手动执行此操作,或者Android通过setContentView(),内置Adapter类等为您执行此操作。


setContentView()扩展提供的布局文件。



因为有时您需要手动执行此操作,例如在复杂的ListView中使用不同类型的行(例如, header 和明细)。

10-08 11:16