10

Android の View クラスの Dialog.setOnShowListener() に相当するメソッドはありますか?

someViewGroup.addView(foo) の直後の行で View (たとえば 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 に答える