ViewGroup完成膨胀事件

Pra*_*nCG 9 android android-layout viewgroup

我创建了一个扩展ViewGroup的自定义布局.一切都很好,我按预期得到了布局.

我想动态更改布局中的元素.然而,这不起作用,因为我在onCreate中调用它,直到那时整个布局实际上(绘制)没有膨胀到屏幕上,因此没有实际大小.

是否有任何事件可以用来找出布局的膨胀何时完成?我试过onFinishInflate但是这不起作用,因为Viewgroup有多个视图,这将被多次调用.

我正在考虑在自定义布局类中创建一个接口,但不确定何时触发它?

Phi*_*ons 27

如果我正确理解您的要求,OnGlobalLayoutListener可能会为您提供所需的信息.

  View myView=findViewById(R.id.myView);
  myView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
            @Override
            public void onGlobalLayout() {
                //At this point the layout is complete and the 
                //dimensions of myView and any child views are known.
            }
        });
Run Code Online (Sandbox Code Playgroud)