popwindow弹窗
最近研究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弹窗相关推荐
- Android带三角形的弹窗,andriod开发 利用.9图制作带三角形指示的popwindow弹窗
利用.9图做背景,配合使用popwindow和listview可以实现这个需求,也可以自定义popwindow的布局,画边框加阴影,自定义三角形的view,然后...然后我就放弃了这个思路,老老实实直 ...
- 安卓使用服务完成音乐播放器
安卓音乐播放器 使用Service后台服务实现播放器 自定义封装Music类 利用Fragment+RadioGroup实现页面 自定义Music类 适配器 音乐展示布局文件 Fragment音乐界面 ...
- android弹出自定义layout菜单,Android:PopWindow — 对Android的底部弹窗、顶部弹窗菜单及自定义界面的使用封装...
转载请注明出处:http://blog..net/hmyang314/article/details/70613478 PopWindow 对Android的底部弹窗,顶部弹窗菜单及自定义界面的使用封 ...
- Android自定义半透明背景弹窗非popwindow/dialog超简单任意编写!
前日,一个朋友问我有没有好看的弹窗,功能不需要太难,说了一点需求,图: 然后我就写了个Demo给他. Activity的弹窗各种各样.很早就有,但是有的太过于单调,样式也不好看,有的自定义起来非常繁琐 ...
- android 底部弹窗失效,Android实现从底部弹出Dialog(和PopWindow实现的效果同样)
布局文件:dialog_custom_layout.xmlandroid android:orientation="vertical" android:layout_width=& ...
- android弹窗闪退,[Android 小记] PopupWindow中放置Spinner 点击直接闪退的问题分析
错误原因:android.view.WindowManager$BadTokenException: Unable to add window -- token android.view.ViewRo ...
- 弹窗代码大全window.open
-----------随机弹一个窗--------- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&quo ...
- Android底部弹窗的正确打开方式
阅读完本文后,你可以有以下收获 利用PopupWindow实现底部弹窗 PopupWindow实现底部弹窗时的缺点 解决利用PopupWindow实现底部弹窗,无法覆盖状态栏的问题 利用dialog实 ...
- Android底部弹窗实现方案
项目中经常会遇到底部弹窗,例如分享弹窗等,今天就来把底部弹窗实现方案总结一下. BottomSheetDialog 底部表单样式的对话框基类.依赖于Behavior机制. 依赖 dependencie ...
最新文章
- Android中shape的使用
- 高效能人士的七个习惯_《高效能人士的七个习惯》导图和读后感
- 快速部署Linkis1.0文档
- 在移动了用户数据时Android平台的路径设置
- java 擦出,Java擦除和转换实例分析
- WebService.asmx架设后,显示调用按钮的方法
- Spring注解开发入门教程
- python和c 的区别-Python和C区别该如何理解?如何适应这种区别?
- 实现全排列的另一种方法(续)
- 单摆的动力学建模以及matlab仿真(牛顿法和拉格朗日方程法)
- 台安PLC通过手机热点远程在线模拟,远程编程,远程调试
- java 解析p12_java读取*.p12证书的信息
- @scheduled 定时任务执行一段时间后莫名其妙停止 Ftp假死
- 学习炒股必读的10本书
- dva的用法_dva.js初探
- 学习总结1-跟开涛学SpringMVC
- git使用及上传代码到github
- 电子工程师入门宝典:最常用十大电子元器件-电子技术方案|电路图讲解
- 百度经纬度转腾讯地图经纬度
- php调试加密代码,使用bcompiler对PHP文件进行加密的代码
热门文章
- 陕西机关事业单位工勤计算机考试成绩,2020年陕西省机关事业单位工人技术等级岗位考核公告发布 6月22日开始报名 9月中旬以后考核...
- android settings 源码,菜鸟学Android源码-Settings(2)
- 你的Unity3d代码质量还可以提高200%
- OpenShift 4 MTC - 从 OpenShift 3 向 OpenShift 4 迁移应用
- 直接在 DNA 上执行 SQL 操作,已通过 PostgreSQL 验证
- F# 换“山头”啦!现已迁移到 .NET 名下
- 遍历同辈节电的方法_jQuery遍历节点
- linux下oracle10g安装配置说明,Linux下oracle10g安装配置说明(ZT)
- idea连接svn_搭建本地虚拟(centos)svn服务器
- tplink无线受限 服务器无响应,tplink怎么设置密码(tplink服务器无响应)