在Android中,是否有与Dialog.setOnShowListener()等价的方法适用于View类?
我需要它是因为当我在某个ViewGroup上添加一个View(例如foo)后的下一行代码中调用getViewLocationOnScreen时,我得到的位置是(0,0)。
我无法使用活动的任何生命周期方法,因为foo的添加是由用户操作(按下按钮)触发的。非常感谢您的帮助。提前致谢。
你应该使用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);
}
});