onFinishInflate()永远不会被调用

谁/什么叫onFinishInflate()? 不pipe我如何膨胀我的布局文件(在代码中),这个方法似乎永远不会被触发。 任何人都可以给我一个例子,或者告诉我什么时候onFinishInflate()实际上被调用?

Solutions Collecting From Web of "onFinishInflate()永远不会被调用"

View.onFinishInflate()在视图(及其子项)从XML中被调用后调用。 具体来说,在调用LayoutInflater.inflate(...) ,会调用onFinishInflate() 。 通货膨胀是从根开始recursion执行的。 一个包含孩子的观点可能需要知道孩子什么时候完成充气。 这个callback函数的一个主要用途是ViewGroups一旦孩子准备好就执行特殊的动作。

假设您有一个名为CustomViewView的子类,并且它不会在内部自动膨胀任何布局。 如果你的布局中有一个CustomView ,例如:

 ... <com.company.CustomView android:layout_width="wrap_content" android:layout_height="wrap_content" /> ... 

一旦膨胀,您应该看到onFinishInflate()的callback。 如果这是您的主要活动布局,那么可以在调用Activity.setContentView(int)之后考虑这个问题。 在内部,这将调用LayoutInflater.inflate(...)

或者,如果您使用以下方法创build了CustomView的实例:

 ... new CustomView(context); ... 

…你不会打电话给onFinishInflate() 。 以这种方式来实例化它自然意味着它没有孩子,因此它不必等待它们以recursion方式被实例化,如在XML通货膨胀中。