Android – 显示View时需要回拨

有没有一种方法相当于Android的View类的Dialog.setOnShowListener()?

我需要它,因为当我调用getLocationOnScreen在一个视图(如foo)紧跟在someViewGroup.addView(foo)之后的行,我得到的位置=(0,0)。

我不能使用活动的任何生命周期方法,因为添加foo正在运行(按下button)。 任何帮助将不胜感激。 提前致谢。

Solutions Collecting From Web of "Android – 显示View时需要回拨"

您应该使用ViewTreeObserver:

someViewGroup.addView(foo) ViewTreeObserver vto = someViewGroup.getViewTreeObserver(); vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() { @Override public void onGlobalLayout() { ///getLocationOnScreen here ViewTreeObserver obs = someViewGroup.getViewTreeObserver(); obs.removeGlobalOnLayoutListener(this); } });