10

android 中的 View 类是否有等效于 Dialog.setOnShowListener() 的方法?

我需要它,因为当我在紧跟 someViewGroup.addView(foo) 的行中的视图(比如 foo)上调用 getLocationOnScreen 时,我得到 location = (0,0)。

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

4

1 回答 1

21

您应该使用 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);
        }
    });
于 2012-06-08T11:43:20.043 回答