LayoutInflater和onFinishInflate()

use*_*201 5 android android-layout

findViewById()遇到了很多人似乎遇到的返回NULL问题.我知道只有在View膨胀后才能调用findViewById()onFinishInflate().我的问题是 - 什么是观点通胀?

在Activity I中调用setContentView(R.layout.testview)哪个应调用View构造函数并调用onDraw().这样膨胀视图不是吗?如果是这样,为什么有一个LayoutInflater和一个功能实际膨胀视图?事实上,onInflateView()即使整个视图被渲染并且我能够与程序交互,我的代码也从未被调用过.这告诉我,View通胀与调用View的构造函数和onDraw()函数有所不同.有人可以解释一下吗?

编辑:我也有一个自定义视图,我使用onDraw()函数绘制.不知怎的,onFinishInflate()函数永远不会为我调用.这可能是什么原因?

-P

Com*_*are 6

我的问题是 - 什么是观点通胀?

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

在Activity中,我调用setContentView(R.layout.testview),它应调用View构造函数并调用onDraw().这样膨胀视图不是吗?

setContentView() 膨胀提供的布局文件.

如果是这样,为什么有一个LayoutInflater和一个实际膨胀视图的功能?

因为有时您需要手动执行此操作,例如在ListView具有不同类型行的复杂(例如,标题和详细信息)中.