在我们开发过程中经常使用到popupwindow,popupwindow和dialog最主要的差别就是:
1.dialog是非阻塞的,而popupwindow是阻塞的,当popupwindow没被dismiss的时候程序就一直阻塞在那里。
2.dialog是默认有透明度的而popupwindow是默认没有透明度的
3.dialog是无法全部覆盖屏幕的,而popupwindow是可以的。
我们在使用自定义popupwindow时,会发现明明设置了
this.setFocusable(true);
this.setOutsideTouchable(true);
两个属性还是点击其它位置或者点击back键时,popupwindow不会消失。
当出现这样的情况的时候还需要添加
ColorDrawable dw = new ColorDrawable(0000000000);
this.setBackgroundDrawable(dw);
添加了这两行代码后点击其它位置或者点击back键时popupwindow就会消失了。