popupWindow的创建和与alertDialog的区别

来源:互联网 发布:红衣主教 知乎 编辑:程序博客网 时间:2024/05/22 08:24

 先创建一个xml文件,在xml文件中布局好我们需要填充的popupWindow布局,

然后通过这样的方式把它填充到popupWindow中,

 

View view1 = View.inflate(getApplicationContext(), R.layout.popupwindownull);//填充成view对象

 

PopupWindow popupWindow = new PopupWindow(view1, 100, 100, true);//创建一个新popupWindow对象..

 

popupWindow.setBackgroundDrawable(new ColorDrawable());

//popupWindow设置背景,必须设置背景,不然返回键不起作用,

 

popupWindow.showAsDropDown(view);//opupWindow设置一个展示的位置.

 

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等),可以设置偏移或无偏移

 

 

alertDialog的区别于联系:

· AlertDialog的位置固定,展示在屏幕的中央,而PopupWindow的位置可以随意

· AlertDialog是非阻塞线程的,而PopupWindow是阻塞线程的

0 0
原创粉丝点击