从View中添加所有来自XML的子视图后回调?

use*_*686 4 xml android callback android-custom-view

我正在编写自定义ViewGroup并遇到以下问题:

ViewGroup,应能通过仅XML指定属性可用.然而,我想要做一些内部的初始化代码后ViewGroup已创建及其所有子View期从XML已被添加(即,当布局充气增加了所有孩子View的A S ViewGroup在XML中指定).

我发现与此相关的所有建议都是使用的getViewTreeObserver().addOnGlobalLayoutListener(...).然而,这至少在每个孩子View被添加之后以及在恢复应用程序等之后被调用.因此它甚至不能检测所有孩子View被添加的时刻.

在将所有子项View添加到a 后,是否有一个方法被调用ViewGroup

相关:何时从XML向Layout/ViewGroup添加子视图

use*_*686 10

有一个回调:View.onFinishInflate().从文档(其中还有一个描述所有回调的"实现自定义视图"部分):

完成从XML扩展视图.在添加所有儿童观点之后,这被称为通胀的最后阶段.

只需覆盖自定义中的方法ViewGroup:

public class MyViewGroup extends ViewGroup {

    @Override
    protected void onFinishInflate() {
        super.onFinishInflate();
        doMyInitialization();
    }
}
Run Code Online (Sandbox Code Playgroud)