谁/什么叫onFinishInflate()?无论我如何夸大我的布局文件(在代码中),这种方法似乎永远不会被触发。任何人都可以给我一个例子或告诉我什么时候onFinishInflate()实际上被调用?
答案 0 :(得分:37)
View.onFinishInflate()
。具体而言,在致电LayoutInflater.inflate(...)
期间,将调用onFinishInflate()
。从根开始递归地执行通货膨胀。包含儿童的视图可能需要知道其孩子何时完成充气。此回调的主要用途之一是ViewGroups
在孩子准备就绪后执行特殊操作。
假设您有一个名为View
的{{1}}子类,并且它本身不会对任何布局进行内部膨胀。如果您的布局中某处有CustomView
,即:
CustomView
一旦充气,您应该会看到...
<com.company.CustomView
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
...
的回调。如果这是您活动的主要布局,那么您可以在调用onFinishInflate()
后考虑这个问题。在内部,这将调用Activity.setContentView(int)
。
或者,如果您使用:
创建了LayoutInflater.inflate(...)
的实例
CustomView
...你不会接到...
new CustomView(context);
...
的电话。以这种方式实例化它自然意味着它没有子节点,因此它不必等待它们以递归方式实例化,就像XML通胀一样。