在Android开发中,有三种可以弹出的窗体可以使用,一种是Dialog,一种是popupindow,还有一种是最原始的方法,我估计也是dialog和popupwindow的实现原理,用windowManger添加自定义view窗体。
一、Dialog和popupwindow的区别
这两者都是弹窗,但有本质上的区别。Dialog是非阻塞式弹窗,Dialog弹出来后,后台还在做其他事情。而当Popupwindow弹出的时候,程序阻塞,后台停止运动,只有当我们调用了dismiss方法之后,程序才会继续向下执行。
二、Dialog和popupwindow的自定义方法
1、Dialog的自定义方法:
Dialog的自定义方法有几种,可以继承Dialog类然后setContentView();这里主要讲解运用AlertDialog.Builder来创建自定义对话框的方法。
直接上代码:
// 新建一个buidler
AlertDialog.Builder builder = new Builder(this);
// 填充自定义view
View view = View.inflate(this, R.layout.freedom, null);
// 创建dialog
final AlertDialog dialog = builder.create();
// 设定自定义View,后面跟的值必须为0
dialog.setView(view, 0, 0, 0, 0);
// 查找组件
confirm = (Button) view.findViewById(R