Dialog 和 Popup的区别

AlertDialog是非阻塞式对话框,而PopupWindow是阻塞式对话框

AlertDialog弹出时,后台还可以做事情;而PopupWindow弹出时,程序会等待,在PopupWindow退出前,程序一直等待,只有当我们调用了dismiss方法的后,PopupWindow退出,程序才会向下执行。

这两种区别的表现是:AlertDialog弹出时,背景是黑色的,但是当我们点击背景,AlertDialog会消失,证明程序不仅响应AlertDialog的操作,还响应其他操作,其他程序没有被阻塞,这说明了AlertDialog是非阻塞式对话框;PopupWindow弹出时,背景没有什么变化,但是当我们点击背景的时候,程序没有响应,只允许我们操作PopupWindow,其他操作被阻塞。

想要popupwindow 点击周边消失,得要自己实现。

PopupWindow pw = new PopupWindow(view,width,height);
pw.setContentView(popupconten);//重新设置PopupWindow的内容
pw.setFocusable(true);//默认是false,为false时,PopupWindow没有获得焦点能力,如果这是PopupWindow的内容中有EidtText,需要输入,这是是无法输入的;只有为true的时候,PopupWindow才具有获得焦点能力,EditText才是真正的EditText。
pw.setAsDropDown(View view);//设置PopupWindow弹出的位置。

Dialog alertDialog = new AlertDialog.Builder(this). 
setTitle("对话框的标题"). 
setMessage("对话框的内容"). 
setIcon(R.drawable.ic_launcher). 
create(); 
alertDialog.show();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
uni-popup-dialog是一种在UNI-APP开发中常用的弹窗组件,它可以在页面中弹出一个对话框供用户进行操作。而取消事件是指当用户点击对话框中的取消按钮时,触发的事件。 取消事件通常用于在用户取消操作时执行一些逻辑,比如关闭弹窗、重置表单等。在使用uni-popup-dialog组件时,可以通过监听取消事件来处理用户取消操作。 具体实现取消事件的方法如下: 1. 在uni-popup-dialog组件中,可以通过设置bind:cancel来绑定取消事件的回调函数,例如:bind:cancel="onCancel"。 2. 在对应的页面或组件中,定义onCancel方法,该方法会在用户点击取消按钮时被触发。 3. 在onCancel方法中编写具体的取消逻辑,比如关闭弹窗、重置表单等。 示例代码如下: 在组件中设置uni-popup-dialog组件的取消事件回调函数: ``` <uni-popup-dialog bind:cancel="onCancel"></uni-popup-dialog> ``` 在对应的页面或组件中定义onCancel方法,并编写取消逻辑: ``` methods: { onCancel: function() { // 关闭弹窗逻辑 // uni.hidePopupDialog(); // 重置表单逻辑 // this.form = {}; } } ``` 上述代码中,当用户点击uni-popup-dialog组件中的取消按钮时,会触发onCancel方法。在该方法中,可以根据具体需求编写取消事件的相关逻辑。 总结:通过设置uni-popup-dialog组件的取消事件回调函数,并在对应的方法中编写取消逻辑,可以实现uni-popup-dialog取消事件的处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值