PopupWindow和AlertDialog都是实现一个弹出框的功能,但是两个又不太一样,AlertDialog在弹出以后点击弹出框以外的东西无效,而PopupWindow可以。
一、PopupWindow使用
首先创建工程。配置好各种属性。
由于PopupWindow是弹出一个框体,所以我们可以自定义一个布局文件,当然也可以选用android内置的(这里我们选择自己创建)

好了,我选择把窗体布局文件设计成这个样子。
现在我们有了布局文件,可以创建PopupWindow了。

我们在MainActivity中创建了一个按钮,用来点击弹出PopupWindow。
1然后首先new一个PopupWindow,
2我们很熟悉的方法,获取布局。
3我们把布局添加给PopupWindow。
4我们添加了一个背景,我让他显示成红色。
5.最关键的一步,让他显示出来。而里面填的参数是将PopupWindow相对谁固定,这里我们是根据他自己,我们也可以填一个view(就这个按钮),大家可以看一下什么效果。


我们默认是无法将他消除的,我们消除他有两种方法:1是让他通过点击周围地方自己消失2是通过dismiss方法。
1.

2.我们在pop_layout中有两个按钮,我们来使用一下其中一个让他上线dismiss方法。

二、AlertDialog
1.配置文件跳过
2.添加一个按钮

3.我们new一个AlertDialog.Builder出来,
4.settitle就是他的标题,
5.setmessage是AlertDialog显示的信息。
6.后面是添加了两个按钮,然后分别实现了对应的监听器。
7.最后.show让他显示出来。

但是我们点击周围他会消失掉,现在我们来添加一个方法,

这样我们点击周围的地方他就不会退出了。
如果我们不想通过back就把他关闭,就添加下面这个方法:

当然我们也可以用我们自定义的样式。不用按照他的这个样子。

1.我们自己创建了一个布局样式,两个edittext,
2.然后通过获取View得到,
3.通过builder把dialog实例化
4.在dialog中 添加view
5.显示。
网友评论