當前位置:編程學習大全網 - 網站源碼 - Dialog與PopWindow的區別

Dialog與PopWindow的區別

從dialog的源碼可以看出,壹個dialog的創建就是壹個window的創建;而Activity也是壹個window,所以在onCreate中調用dialog的show方法可以彈出,因為兩個window是相互獨立的,dialog的彈出不會觸發Activity的生命周期;

並且源碼中可以看出,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?

  • 上一篇:java get和set方法
  • 下一篇:37源代碼補碼補碼
  • copyright 2024編程學習大全網