美文网首页安卓控件系列
Dialog 和 PopupWindow

Dialog 和 PopupWindow

作者: chauI | 来源:发表于2017-03-03 18:58 被阅读51次

    参考 Dialog 和 Popupwindow
    更多见于:Dialog 和 PopUpWindow的抉择

    还是比较好奇 Dialog 和 PopupWindow 的区别的,一开始只觉得 Dialog 可能比较容易实现,适合一些简单的对话框,而 PopupWindow 则可以做一下比较复杂的布局。

    最后看了别的博客之后发现两者的区别还是有的,在此做做笔记。

    AlertDialog 是非阻塞线程的,Popupwindow 是阻塞线程

    也就是说 AlertDialog 弹出时,后台还可以进行其他的操作,
    而 Popupwindow 弹出的时候后台进程会被阻塞的,直到 Popupwindow 消失才会继续

    位置、动画等设置的区别

    • AlertDialog 设置位置是比较麻烦的,Popupwindow 则非常的简单。
    • 前者加载动画必须用 style 的方式在 xml 文件中编写。
    • 前者设置宽高都靠获取到的 dialog 对象,和布局没有太多关联
    • 前者可以简单的实现蒙版的效果

    还有设置 item 的点击事件的方法、设置宽高的方法都不尽相同,

    具体也不详细的解释,看文档就差不多了

    至于上面那个博客中提到的 AlertDialog 不可以设置宽为整个屏幕宽这一点,
    其实还是可以的,原因是 AlertDialog 不能全屏是其默认的主题导致,
    修改它的 style就可以实现,详情见我的另一篇 Dialog 笔记

    关于 PopupWindow 也可以看看我写的 PopupWindow 笔记

    总结起来,影响选择的因素最大的就是:
    进程是否会被阻塞弹出框的位置是否要求比较的特别(意会)
    其他的效果基本都能满足

    相关文章

      网友评论

        本文标题:Dialog 和 PopupWindow

        本文链接:https://www.haomeiwen.com/subject/kdnlgttx.html