Android中的对话框有多种:Toast,OptionsMenu,PopupWindow和Dialog。它们都可以实现弹窗功能,但是他们之间有一些差别,下面我们先对比Dialog和PopuWindow区别。

  • Popupwindow在显示之前一定要设置宽高,Dialog无此限制。
  • Popupwindow默认不会响应物理键盘的back,除非显示设置了popup.setFocusable(true);而在点击back的时候,Dialog会消失。

  • Popupwindow不会给页面其他的部分添加蒙层,而Dialog会。

  • Popupwindow没有标题,Dialog默认有标题,可以通过dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);取消标题

  • 二者显示的时候都要设置Gravity。如果不设置,Dialog默认是Gravity.CENTER。

  • 二者都有默认的背景,都可以通过setBackgroundDrawable(new ColorDrawable(android.R.color.transparent));去掉。

其中最本质的差别就是:AlertDialog是非阻塞式对话框:AlertDialog弹出时,后台还可以做事情;而PopupWindow是阻塞式对话框:PopupWindow弹出时,程序会等待,在PopupWindow退出前,程序一直等待,只有当我们调用了dismiss方法的后,PopupWindow退出,程序才会向下执行。这两种区别的表现是:AlertDialog弹出时,背景是黑色的,但是当我们点击背景,AlertDialog会消失,证明程序不仅响应AlertDialog的操作,还响应其他操作,其他程序没有被阻塞,这说明了AlertDialog是非阻塞式对话框;PopupWindow弹出时,背景没有什么变化,但是当我们点击背景的时候,程序没有响应,只允许我们操作PopupWindow,其他操作被阻塞。

Dialog和PopupWindow的区别相关推荐

  1. Android窗口设计之Dialog、PopupWindow、系统窗口的实现

        窗口设计之Dialog.PopupWindow.系统窗口的实现 Android应用程序窗口设计系列博客: Android应用程序窗口设计之Window及WindowManager的创建 And ...

  2. Session、Dialog和Transaction的区别

    会话(Session) 跟SDP内信息相关.在SDP中,多媒体会话指的是一组的媒体发送方和接收方及媒体流从发送方流向接受方.会话是由SDP里的username, session id, network ...

  3. Android 搜索框 search dialog 和 search widget

    2019独角兽企业重金招聘Python工程师标准>>> 分为search dialog和search widget 区别: A,search dialog是一个被系统控制的UI组件. ...

  4. android.view.WindowLeaked的解决办法 has leaked window android.widget.PopupWindow$PopupDecorView

    如果我们在某activity中声明了Dialog或者PopupWindow,确保在关闭当前activity时候,这些状体已经关闭,否则会引起Window Leaked if (popWindow!= ...

  5. PopupWindow实现屏幕底部弹出

    一 实现原理: 1)通过style实现弹出与消失的动画 2)Window实现背景在弹框显示消失时的明暗效果 3)showAtLocation控制弹框位置 二 代码 1. MainActivity和Po ...

  6. 窗体泄露 android.view.WindowLeaked: Activity XxxActivity has leaked window android.widget.PopupWindow$Po

    目录 前言 Why 怎么解决 How to 办? 前言 搞项目的时候遇到一个Bug,当ListPopupWindow显示的时候,按返回键就会报标题类似的错误.但是在点击Toolbar的Navigati ...

  7. Android -- 贝塞尔二阶实现饿了么加入购物车效果

    1,上周我们实现了简单的三阶贝塞尔曲线效果实例,今天是使用二阶贝塞尔曲线加动画实现的加入购物车效果,在码代码过程中出现了些问题,过一下和大家来探讨探讨,先看一下效果图 2,从上面的效果来看我们基本上可 ...

  8. 史上最全 BAT 大厂面试题整理

    转载自 史上最全 BAT 大厂面试题整理!(速度收藏) 主要分为以下几部分: (1)java面试题 (2)Android面试题 (3)高端技术面试题 (4)非技术性问题&HR问题汇总 1 ja ...

  9. 最全面试考点与面试技巧,大厂面经合集

    前言 对于字节跳动的二面三面而言,Framework+MVP架构+HashMap原理+性能优化+Flutter+源码分析等问题都成高频问点!然而很多的朋友在面试时却答不上或者答不全!今天在这分享下这些 ...

最新文章

  1. VMWARE HOST-ONLY方式共享上网
  2. AI:人工智能的多模态融合模型的简介、发展以及未来趋势
  3. 使用squid在阿里云服务器(centos7)上搭建自己的代理服务器
  4. pandas describe函数_SQL和Pandas同时掉到河里,你先救谁?
  5. 白皮书 | 国内首份《Android 全埋点技术白皮书》开源所有项目源码!
  6. C# 导出 Excel 数字列出现‘0’的解决办法
  7. Flutter之Center
  8. Node MemoryLeak
  9. JQUERY方法给TABLE动态增加行
  10. 购物车程序二(模拟了用户登录,限次数三次)
  11. BlueTooth: 蓝牙协议栈的原理和结构
  12. left和offsetLeft
  13. 信用卡前6位bin号代表什么
  14. 服务端软件安全测评标准及实施指南 V1.0
  15. 计算机应用技术拼音,搜狗拼音输入法研究 - 东北大学计算机应用技术研究所Web信息处理小组 - BlogJava...
  16. 使用subs和evals函数对sympy中的符号进行赋值并且设置数值位数
  17. Qt播放音乐报错DirectShowPlayerService::doSetUrlSource: Unresolved error code 0x80070002 ()
  18. CCNA之EIGRP(IGRP)
  19. Ceph之RBD恢复的几种方式与原理
  20. 2022阿里P7级面试,掌握这份路线图上的技术点,So easy(Java岗)

热门文章

  1. 41.Java HashMap有序集合
  2. PTA——重要的话说三遍
  3. 【字符串-简单】1832. 判断句子是否为全字母句
  4. android 取消选择图片会闪退或者报错
  5. rx6600属于什么级别的显卡 rx6600相当于gtx什么显卡
  6. 游戏编程之十 图像引擎DirectXDraw
  7. 自动升降压5-40V多串超级电容充电芯片和解决方案
  8. 20162330 2016-2017-2《程序设计与数据结构》课程总结
  9. 名正则言顺谈服装品牌名称规划
  10. Android毛玻璃效果的实现(本文系转载一种快速毛玻璃虚化效果实现)