最近研究popwindow,在这里分享两个自己运行可用的demo,效果图:

图片一的demo虽然点击不是popwindow区域,popwindow会消失,但是这样会抢夺其他控件的焦点(比如你的手机界面中有一个button是作为跳转的动作,你会发现点击第一下会先取消显示的popwindow,点击第二下才会进行跳转),目前我还没有找到方法解决这个问题 ,如果哪位有思路知道怎样解决欢迎留言。

第二张图片避免了这个问题,思路是计算控件的宽度和高度来判断是否处理popwindow的取消动作,但是有点复杂

ps 已经解决了第一个demo的bug  ,这样设置

popWindow.setFocusable(false);
popWindow. setOutsideTouchable(true);
    //popWindowprivate void initPopWindow(View v) {View view = LayoutInflater.from(mContext).inflate(R.layout.item_popup, null, false);TextView btn_xixi = (TextView) view.findViewById(R.id.btn_xixi);TextView btn_hehe = (TextView) view.findViewById(R.id.btn_hehe);//1.构造一个PopupWindow,参数依次是加载的View,宽高popWindow = new PopupWindow(view,ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT, true);popWindow.setAnimationStyle(R.anim.anim_pop);  //设置加载动画popWindow.setFocusable(false);popWindow. setOutsideTouchable(true);
//        view.setFocusableInTouchMode(true);//这些为了点击非PopupWindow区域,PopupWindow会消失的,如果没有下面的//代码的话,你会发现,当你把PopupWindow显示出来了,无论你按多少次后退键//PopupWindow并不会关闭,而且退不出程序,加上下述代码可以解决这个问题
//        popWindow.setTouchable(true);
//        popWindow.setTouchInterceptor(new View.OnTouchListener() {
//            @Override
//            public boolean onTouch(View v, MotionEvent event) {
//onclick();
//
//
//                return false;
//                // 这里如果返回true的话,touch事件将被拦截
//                // 拦截后 PopupWindow的onTouchEvent不被调用,这样点击外部区域无法dismiss
//            }
//        });popWindow.setBackgroundDrawable(new ColorDrawable(0x00000000));    //要为popWindow设置一个背景才有效//设置popupWindow显示的位置,参数依次是参照View,x轴的偏移量,y轴的偏移量popWindow.showAsDropDown(v, 50, 0);//设置popupWindow里的按钮的事件btn_xixi.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Toast.makeText(NailActivity.this, "你点击了~one", Toast.LENGTH_SHORT).show();}});btn_hehe.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Toast.makeText(NailActivity.this, "你点击了~two", Toast.LENGTH_SHORT).show();
//                popWindow.dismiss();}});}

https://yunpan.cn/cP49987exRG7N  访问密码 f099

https://yunpan.cn/cP49zRnywVUZ9  访问密码 65ae

参考的博客文章 http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/0702/1627.html

popwindow弹窗相关推荐

  1. Android带三角形的弹窗,andriod开发 利用.9图制作带三角形指示的popwindow弹窗

    利用.9图做背景,配合使用popwindow和listview可以实现这个需求,也可以自定义popwindow的布局,画边框加阴影,自定义三角形的view,然后...然后我就放弃了这个思路,老老实实直 ...

  2. 安卓使用服务完成音乐播放器

    安卓音乐播放器 使用Service后台服务实现播放器 自定义封装Music类 利用Fragment+RadioGroup实现页面 自定义Music类 适配器 音乐展示布局文件 Fragment音乐界面 ...

  3. android弹出自定义layout菜单,Android:PopWindow — 对Android的底部弹窗、顶部弹窗菜单及自定义界面的使用封装...

    转载请注明出处:http://blog..net/hmyang314/article/details/70613478 PopWindow 对Android的底部弹窗,顶部弹窗菜单及自定义界面的使用封 ...

  4. Android自定义半透明背景弹窗非popwindow/dialog超简单任意编写!

    前日,一个朋友问我有没有好看的弹窗,功能不需要太难,说了一点需求,图: 然后我就写了个Demo给他. Activity的弹窗各种各样.很早就有,但是有的太过于单调,样式也不好看,有的自定义起来非常繁琐 ...

  5. android 底部弹窗失效,Android实现从底部弹出Dialog(和PopWindow实现的效果同样)

    布局文件:dialog_custom_layout.xmlandroid android:orientation="vertical" android:layout_width=& ...

  6. android弹窗闪退,[Android 小记] PopupWindow中放置Spinner 点击直接闪退的问题分析

    错误原因:android.view.WindowManager$BadTokenException: Unable to add window -- token android.view.ViewRo ...

  7. 弹窗代码大全window.open

    -----------随机弹一个窗--------- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&quo ...

  8. Android底部弹窗的正确打开方式

    阅读完本文后,你可以有以下收获 利用PopupWindow实现底部弹窗 PopupWindow实现底部弹窗时的缺点 解决利用PopupWindow实现底部弹窗,无法覆盖状态栏的问题 利用dialog实 ...

  9. Android底部弹窗实现方案

    项目中经常会遇到底部弹窗,例如分享弹窗等,今天就来把底部弹窗实现方案总结一下. BottomSheetDialog 底部表单样式的对话框基类.依赖于Behavior机制. 依赖 dependencie ...

最新文章

  1. Android中shape的使用
  2. 高效能人士的七个习惯_《高效能人士的七个习惯》导图和读后感
  3. 快速部署Linkis1.0文档
  4. 在移动了用户数据时Android平台的路径设置
  5. java 擦出,Java擦除和转换实例分析
  6. WebService.asmx架设后,显示调用按钮的方法
  7. Spring注解开发入门教程
  8. python和c 的区别-Python和C区别该如何理解?如何适应这种区别?
  9. 实现全排列的另一种方法(续)
  10. 单摆的动力学建模以及matlab仿真(牛顿法和拉格朗日方程法)
  11. 台安PLC通过手机热点远程在线模拟,远程编程,远程调试
  12. java 解析p12_java读取*.p12证书的信息
  13. @scheduled 定时任务执行一段时间后莫名其妙停止 Ftp假死
  14. 学习炒股必读的10本书
  15. dva的用法_dva.js初探
  16. 学习总结1-跟开涛学SpringMVC
  17. git使用及上传代码到github
  18. 电子工程师入门宝典:最常用十大电子元器件-电子技术方案|电路图讲解
  19. 百度经纬度转腾讯地图经纬度
  20. php调试加密代码,使用bcompiler对PHP文件进行加密的代码

热门文章

  1. 陕西机关事业单位工勤计算机考试成绩,2020年陕西省机关事业单位工人技术等级岗位考核公告发布 6月22日开始报名 9月中旬以后考核...
  2. android settings 源码,菜鸟学Android源码-Settings(2)
  3. 你的Unity3d代码质量还可以提高200%
  4. OpenShift 4 MTC - 从 OpenShift 3 向 OpenShift 4 迁移应用
  5. 直接在 DNA 上执行 SQL 操作,已通过 PostgreSQL 验证
  6. F# 换“山头”啦!现已迁移到 .NET 名下
  7. 遍历同辈节电的方法_jQuery遍历节点
  8. linux下oracle10g安装配置说明,Linux下oracle10g安装配置说明(ZT)
  9. idea连接svn_搭建本地虚拟(centos)svn服务器
  10. tplink无线受限 服务器无响应,tplink怎么设置密码(tplink服务器无响应)