PopupWindow(悬浮框)的基本使用方法和注意事项

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()方法时,一

    本文链接:http://task.lmcjl.com/news/12060.html

    展开阅读全文