popupwindow和dialog的区别
我把最重要的核心本质区别写出来:
它们的相同点:它们都是弹窗
【popupwindow和dialog的区别】基本区别:popupwindow在显示之前一定要设置宽高,Dialog没有;popupwindow默认不会响应物理键盘的返回键,只有设置了popup.setfocusable(true)时才会响应,Dialog会响应物理键盘;popupwindow不会给页面其他部分添加蒙阪,dialog会。;popupwindow没有标题,dialog默认有标题,可以通过dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
取消标题;二者显示的时候都要设置Gravity。如果不设置,Dialog默认是Gravity.CENTER。
核心区别:Dialog是非阻塞式对话框,AlertDialog弹出时后台还可以做其他事情,popupwindow是阻塞式对话框,popupwindow弹出时程序会等待,在popupwindow结束前程序会一直等待,当调用diamiss方法后popupwindow弹窗关闭程序才向下进行。
(这两种表现最直接的解释方式:AlertDialog弹出时背景是黑的,当我们点击背景时AlertDialog会消失,这证明了程序不仅响应会AlertDialog,还会响应其他操作,这证明AlertDialog是非阻塞式对话框;popupwindow弹出时背景没什么变化,当我们点击背景时程序没有响应,只允许我们操作popupwindow,其他操作被阻塞)
推荐阅读
- 急于表达——往往欲速则不达
- 第三节|第三节 快乐和幸福(12)
- 20170612时间和注意力开销记录
- 2.6|2.6 Photoshop操作步骤的撤消和重做 [Ps教程]
- 对称加密和非对称加密的区别
- 眼光要放高远
- 樱花雨
- 前任
- 2020-04-07vue中Axios的封装和API接口的管理
- 烦恼和幸福