PopupWindow的使用
PopupWindow,其实就是一个弹出框,它和我们之前学过的Dialog对话框有很多相似的地方,几乎都是在后台用代码创建,不能在布局文件中创建。
与Dialog的区别:
最近关键的区别在于Dialog不能指定显示位置,只能默认显示在屏幕的最中间。而PopuoWindow是可以指定显示位置的,随便哪个位置都可以,比较灵活。
PopWindow的构造函数:
1. //方法一:
2. public PopupWindow (Context context)
3. //方法二:
4. public PopupWindow(View contentView)
5. //方法三:
6. public PopupWindow(View contentView, int width, int height)
7. //方法四:
8. public PopupWindow(View contentView, int width, int height, boolean focusable)
以上4个其实采用哪个构造函数都可以,但是有3个属性是PopupWindow必须设置的:
1. ViewcontentView
2. Intwidth
3. Intheight
contentView必须设置因为PopupWindow不像Dialog那样有默认布局。它必须自己定义布局。
Width和height是设置显示PopupWindow的宽高尺寸。
显示函数:
主要有3个:
//相对某个控件的位置(正左下方),无偏移
showAsDropDown(View anchor):
showAsDropDown(View anchor, int xoff, int yoff):
showAtLocation(View parent, int gravity, int x, int y):
前两个为先是在某个控件的下方,x和y为偏移量。
ShowAtLocation是显示在父控件的某个位置。
自己做了实验,上代码:
首先设置自定义的布局文件,代码比较简单,就不帖出来了,这是效果图:
设置PopupWindow以及显示的方法:
首先用LayoutInflater得到了自定义的view,然后设置了宽高属性,
然后重写了onKeyDown方法,
当用户按下Menu菜单时,显示窗口,当用户按下后退键,窗口消失。
一个简单的PopupWindow就创建完成了