一、内容提要
说道弹框,我们会想到AlertDialog、PopWindow以及BottomSheetDialog,AlertDialog的介绍见之前文章,下面简单介绍一下PopWindow和BottomSheetDialog,以及它们的不同点。
二、PopWindow
先看一下效果图:
创建PopWindow的代码如下:
其中设置动画的代码如下:
pop_in.xml
pop_out.xml
在styles.xml中添加以下代码:
二、Dialog
显示效果如下:
创建代码如下:
综上所属,PopupWindow和Dialog的不同点如下:
(1)dialog默认屏幕居中弹出,popupWindow可以设置动态效果,从上下左右边缘弹出
(2)popupWindow得手动添加蒙层;dialog自带蒙层
(3)popupWindow默认不会响应物理back键,除非显示设置了popupWindow.setFocusable(true)或者监听物理back键的点击事件;当按下物理back键的时候,dialog会消失
(4)popupWindow在显示之前一定要设置宽高,dialog无此限制
(5)popupWindow没有标题,dialog默认有标题,可以通过dialog.requestWindowFeature(Window.FEATURE_NO_TITLE),取消标题
(6)二者显示的时候都要设置Gravity,如果不设置,dialog默认是Gravity.CENTER
(7)二者都有默认的背景,都可以通过setBackgroundDrawable(new ColorDrawable(android.R.color.transparent))去掉;其中最本质的差别就是,AlertDialog是非阻塞式对话框,AlertDialog弹出时,后台还可以做事情;而popupWindow是阻塞式对话框,程序会等待,在popupWindow退出前,程序一直等待...