PopupWindow是Android中一种悬浮框,可以在屏幕上显示出一个临时的悬浮窗口,它可以被用来提供一些额外的信息或者操作,比如提示框,菜单,列表等。它和Dialog的区别在于,Dialog需要阻塞用户操作,而PopupWindow可以在屏幕上悬浮,让用户可以继续进行其他操作。
PopupWindow的基本使用方法
- 1. 创建PopupWindow对象:
// 创建PopupWindow对象,参数依次是加载的View,宽高 PopupWindow mPopupWindow = new PopupWindow(view, width, height);
- 2. 设置PopupWindow的背景:
// 设置PopupWindow的背景 mPopupWindow.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
- 3. 设置PopupWindow可以获得焦点:
// 设置PopupWindow可以获得焦点 mPopupWindow.setFocusable(true);
- 4. 设置PopupWindow可以触摸:
// 设置PopupWindow可以触摸 mPopupWindow.setTouchable(true);
- 5. 设置点击窗口外部可以消失:
// 设置点击窗口外部可以消失 mPopupWindow.setOutsideTouchable(true);
- 6. 显示PopupWindow:
// 显示PopupWindow,其中: // 第一个参数是PopupWindow的锚点,第二和第三个参数分别是PopupWindow相对锚点的x、y偏移 mPopupWindow.showAsDropDown(anchor, xoff, yoff);
PopupWindow的注意事项
- 1. PopupWindow的宽高不能超过屏幕的宽高,否则会报错;
- 2. 在调用showAsDropDown()方法时,一定要设置PopupWindow的宽高,否则无法正常显示;
- 3. 如果PopupWindow的背景设置为透明,则PopupWindow会自动设置背景;
- 4. 如果PopupWindow的背景设置为不透明,则PopupWindow会自动设置背景;
- 5. PopupWindow中的View不能有点击事件,否则会导致PopupWindow消失;
- 6. 如果PopupWindow中的View有点击事件,则需要设置PopupWindow的setTouchable(true);
- 7. PopupWindow的宽高不能设置为wrap_content,否则会报错;
- 8. 如果PopupWindow的宽高设置为match_parent,则PopupWindow会自动撑满屏幕;
- 9. 如果PopupWindow的宽高设置为具体的数值,则PopupWindow会根据设置的宽高显示;
- 10. 如果PopupWindow的宽高设置为0,则PopupWindow会自动撑满屏幕;
- 11. 在调用showAsDropDown()方法时,一定要设置PopupWindow的宽高,否则无法正常显示;
- 12. 如果PopupWindow的宽高设置为0,则PopupWindow会自动撑满屏幕;
- 13. 在调用showAsDropDown()方法时,一定要设置PopupWindow的宽高,否则无法正常显示;
- 14. 如果PopupWindow的宽高设置为0,则PopupWindow会自动撑满屏幕;
- 15. 在调用showAsDropDown()方法时,一定要设置PopupWindow的宽高,否则无法正常显示;
- 16. 在调用showAsDropDown()方法时,一定要设置PopupWindow的宽高,否则无法正常显示;
- 17. 在调用showAsDropDown()方法时,一定要设置PopupWindow的宽高,否则无法正常显示;
- 18. 在调用showAsDropDown()方法时,一