Activity、Dialog、PopupWindow、Toast比较
先看一下各个窗口类型表格:
类别 | Window Type | 是否创建PhoneWindow | 根View |
---|---|---|---|
Activity | TYPE_APPLICATION | 是 | PhoneWindow.getDecorView() |
Dialog | TYPE_APPLICATION | 是 | PhoneWindow.getDecorView() |
PopupWindow | TYPE_APPLICATION_PANEL = FIRST_SUB_WINDOW | 否 | 若mBackground不空,mPopupView = popupViewContainer; 否则mPopupView = mContentView; |
Toast | TYPE_TOAST | 否 | com.android.internal.R.layout.transient_notification |
以上视图最终都是调用android.view.WindowManagerImpl#addView(View view, ViewGroup.LayoutParams params)来添加到窗口的。
总结一下各个类型窗口添加视图流程:
关于