今天弄了一下Android的PopuWindow的用法,弄晕了头,PopuWindow总是显示不出来,要么显示出来;后来在网上找些资料终于了解到。

后来总结了一些教训

1、 PopuWindow 的大小由下面代码控制;

newPopupWindow(view, ViewGroup.LayoutParams.FILL_PARENT,

ViewGroup.LayoutParams.WRAP_CONTENT);

2、 popuWindow.showAsDropDown(v);方法是将PopuWindow显示在View v的左下方;

3、 需要顺利让PopUpWindow dimiss(即点击PopuWindow之外的地方此或者back键PopuWindow会消失);PopUpWindow的背景不能为空。必须在popuWindow.showAsDropDown(v);或者其它的显示PopuWindow方法之前设置它的背景不为空:如下面两行代码:

ColorDrawablecd = new ColorDrawable(-0000);

popuWindow.setBackgroundDrawable(cd);

popuWindow.showAsDropDown(v);

注意这里设置背景并不会覆盖xml文件定义的背景。

4、 当有popuWindow.setFocusable(false);的时候,说明PopuWindow不能获得焦点,即使设置设置了背景不为空也不能点击外面消失,只能由dismiss()消失,但是外面的View的事件还是可以触发,back键也可以顺利dismiss掉。当设置为popuWindow.setFocusable(true);的时候,加上下面两行设置背景代码,点击外面和Back键才会消失。

5、 // 这里设置显示PopuWindow之后在外面点击是否有效。如果为false的话,那么点击PopuWindow外面并不会关闭PopuWindow。当然这里很明显只能在Touchable下才能使用。

popuWindow.setOutsideTouchable(true);

下面给出一个简单的使用PopuWindow的实例:


更多相关文章

  1. Android使背景灯(Brightness)高亮的方法
  2. Android(安卓)自定义日期和时间和星期的弹窗
  3. Android(安卓)studio 点击按钮 改变viewtext 文字的颜色
  4. android之检测手机电池
  5. android 键盘关闭/显示
  6. Activity背景全透明
  7. android之PopUpWindow显示Listview(文件列表)
  8. 【Android】Menu不同菜单的使用介绍
  9. android 隐藏键盘 显示键盘

随机推荐

  1. 使用QSqlDatabase类的open函数导致程序崩
  2. Navicat 图形化操作mysql 基本操作
  3. ubuntu 14.04中安装phpmyadmin即mysql图
  4. Spring Security ACL使用MySQL配置与数据
  5. 多个mysql数据库怎么指定到多个不同文件
  6. mysql查询一条工单时间需要10秒。优化sql
  7. Centos7下编译Qt的mysql驱动
  8. MySQL基于Navicat的基本操作技巧
  9. MySql中有哪些存储引擎?
  10. 数据库行转列和列转行小例子