zoukankan      html  css  js  c++  java
  • PopupWindwo和AlertDialog的区别

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

    它们的不同点在于:AlertDialog的位置固定,而PopupWindow的位置可以随意
    AlertDialog是非阻塞线程的,AlertDialog弹出的时候,后台可是还可以做其他事情的哦。 

    而PopupWindow是阻塞线程的, 这就意味着在我们退出这个弹出框之前,程序会一直等待


    PopupWindow的位置按照有无偏移分,可以分为偏移和无偏移两种;按照参照物的不同,可以分为相对于某个控件(Anchor锚)和相对于父控件。具体如下
    showAsDropDown(View anchor):相对某个控件的位置(正左下方),无偏移
    showAsDropDown(View anchor, int xoff, int yoff):相对某个控件的位置,有偏移
    showAtLocation(View parent, int gravity, int x, int y):相对于父控件的位置(例如正中央Gravity.CENTER,下方Gravity.BOTTOM等),可以设置偏移或无偏移

    LayoutInflater layoutInflater = LayoutInflater.from(this);

          View popupWindow = layoutInflater.inflate(R.layout.popup, null);

  • 相关阅读:
    物流与仓库
    测试使用
    禅修的升级
    《引爆点 马尔科姆 格拉德威尔》读书笔记总结----《创业必读书第20本》--创业第三关做好业务:3,如何做好营销和增长第4本
    shell
    Vue中常用的方法记录
    前端工程化3-tapable
    Browser上传文件到华为云/七牛云 详细步骤
    immutable
    shell利用叮叮发送消息
  • 原文地址:https://www.cnblogs.com/xgjblog/p/3994865.html
Copyright © 2011-2022 走看看