popupwindow和dialog的区别
我把最重要的核⼼本质区别写出来:
它们的相同点:它们都是弹窗
基本区别:popupwindow在显⽰之前⼀定要设置宽⾼,Dialog没有;popupwindow默认不会响应物理键盘的返回键,只有设置了
popup.setfocusable(true)时才会响应,Dialog会响应物理键盘;popupwindow不会给页⾯其他部分添加蒙阪,dialog会。;popupwindow没有标题,dialog默认有标题,可以通过questWindowFeature(Window.FEATURE_NO_TITLE);取消标题;⼆者显⽰的时候都要设置Gravity。如果不设置,Dialog默认是Gravity.CENTER。
ignore和miss的区别核⼼区别:Dialog是⾮阻塞式对话框,AlertDialog弹出时后台还可以做其他事情,popupwindow是阻塞式对话框,popupwindow弹出时程序会等待,在popupwindow结束前程序会⼀直等待,当调⽤
diamiss⽅法后popupwindow弹窗关闭程序才向下进⾏。
(这两种表现最直接的解释⽅式:AlertDialog弹出时背景是⿊的,当我们点击背景时AlertDialog会消失,
这证明了程序不仅响应会AlertDialog,还会响应其他操作,这证明AlertDialog是⾮阻塞式对话框;popupwindow弹出时背景没什么变化,当我们点击背景时程序没有响应,只允许我们操作popupwindow,其他操作被阻塞)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论