並且源碼中可以看出,dialog默認是點擊空白取消的,並位於居中位置。
源碼:
從源碼來看PopWindow的DecorView是PopupDecorView,PopupDecorView是繼承
FrameLayout,所以本質上PopupWindow就是壹個View,需要依附壹個具體的view,
默認情況下是不能夠在onCreate時顯示;所以如果想要在界面顯示的時候就彈出PopupWindow
需要重寫onWindowFocusChanged方法,判斷activity完全顯示,並且已經拿到焦點,此時
才能進行顯示;
否則會報出異常:
android.view.WindowManager$BadTokenException: Unable to add window -- token null is not valid; is your activity running?