在开发中一般会使用到PopupWindow,使用时有时我们会需要对返回键监听来实现自己的需求,但是在使用时总会出现问题

这是我在网上搜索到的方法但是并没有效果

View view = View.inflate(mctx, R.layout.pop_file_upload, null);final PopupWindow pop = new PopupWindow(view, RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);pop.setOutsideTouchable(true);pop.setFocusable(true);view.setFocusable(true);view.setFocusableInTouchMode(true);ColorDrawable dw = new ColorDrawable(mctx.getResources().getColor(R.color.pop));pop.setBackgroundDrawable(dw);pop.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
   pop.getContentView().setOnKeyListener(new OnKeyListener() {@Overridepublic boolean onKey(View v, int keyCode, KeyEvent event) {if (keyCode == KeyEvent.KEYCODE_BACK) {Log.d(TAG, "onKey: +++++++++++++"+9999);agentWeb.back();pop.dismiss();return true;}Log.d(TAG, "onKey: 6666"+888);return false;}});

经过查看源码发下。在该方法pop.setBackgroundDrawable里当背景不为null时他会自己创建一个PopupDecorView

这个popDecorView继承自fragmentLayout,在里面他已经吧返回键监听过了,所以不管用了。所以为了监听返回键我把背景设置在了view里,在setBackgroundDrawable方法里设置为null,就行了。

PopupWindow 监听返回键相关推荐

  1. 在Android中实现监听 返回键,主键,菜单键

    一.监听 返回键 onKeyDown方法和onBackPressed方法 onKeyDown: 是当某个按键被按下是触发.所以也有人在点击返回键的时候去执行该方法来做判断.(该方法只是android ...

  2. Android监听返回键、Home键+再按一次返回键退出应用

    Android监听返回键需重写onKeyDown()方法 Home键keyCode==KeyEvent.KEYCODE_HOME [java] view plaincopy @Override pub ...

  3. Android下监听返回键、home键、任务键

    1.监听返回键 @Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {if (keyCode == KeyEvent.KEYC ...

  4. Android 如何监听返回键,弹出一个退出对话框

    Android 如何监听返回键点击事件,并创建一个退出对话框, 防止自己写的应用程序不小心点击退出键而直接退出.自己记录下这个简单的demo,备用. 注:如下代码当时是从网上copy过来的,现在忘了它 ...

  5. android设置返回按钮无效,Android onKeyDown监听返回键无效的解决办法

    Android onKeyDown监听返回键无效的解决办法 当我们的Activity继承了TabActivity,在该类中重写onKeyDown是监听不到返回键的, 具体解决方法如下: 重写dispa ...

  6. Vue 点浏览器后退 模态框有灰色遮罩,监听返回键 this 无效

    问题:前端使用 <el-dialog 实现模态框当打开模态框后,点击浏览器上的后退按钮,发现遮罩还在. 解决办法 监听返回键,遇到的问题是直接用 this.xxx 无效,原因是此处 this 非 ...

  7. android全局监听onkeydown,Android中的几个onTouch()事件、onKeyDown监听返回键无效

    Android中的几个onTouch()事件.onKeyDown监听返回键无效 一:Android中的几个onTouch()事件 继承SimpleOnGestureListener,HahaGestu ...

  8. js 监听返回键 利用pushState

    我的开发工作主要是做移动端广告的页面,为了留住更多的用户,我们需要监听浏览器的返回键,在用户返回时,弹出弹窗来进一步提供选项来分流客户.(监听关闭键无法自定义弹窗) 使用的方法就是利用pushStat ...

  9. Android监听返回键、Menu键、Home键、

    back键 监听back键还是很简单的,有两种方法: 调用onBackPressed()方法:调用此方法会自动调用finish(). @Override public void onBackPress ...

  10. Fragment监听返回键

    Activity 比较容易监听物理键返回事件(onBackPressed):Fragment却不能 假设一个FragmentActivity包含3个Fragment,用户一般期望在返回时,逐层返回到F ...

最新文章

  1. 开发日记-20190511 关键词 onStart()和onResume()存在的原因(猜测篇)
  2. Linux 搜索指令
  3. vbs删除非空文件夹
  4. Cassandra - Insert after Delete fails silently
  5. Android对话框dialog大全
  6. 排序之选择排序:简单选择+堆排序
  7. 【XSY3350】svisor - 点分治+虚树dp
  8. python判断正负零_【译】格式字符串语法
  9. Asp.net中Application Session Cookie ViewState Cache
  10. Dubbo注册中心-监控中心安装笔记(CentOS7)
  11. c语言中输出最大公约数和最小公倍数,c语言求最大公约数和最小公倍数(转)...
  12. 华为养狼,喂的是真肉
  13. uniapp app端拉起高德网页地图
  14. Unity 游戏框架搭建 2017 (二十四) 小结
  15. django for 前端_django 5. 前端页面设计 - 刘江的django教程
  16. 第三方支付平台:易宝支付
  17. flutter 复制粘贴默认英文显示问题
  18. 将一个字符串逆序输出
  19. Kotlin 找素数/质数
  20. 会议平板怎么选?智能会议平板功能大全,购前必阅

热门文章

  1. CC控制服务的设计和侦测方法综述
  2. 定义一个三角形的类来进行一些操作
  3. 4237. 【五校联考5day1】Melancholy (Standard IO)
  4. 通过ESP8266手机或电脑浏览器网页能控制远程任意组任意路继电器开关并收发单片机指令 测试OK
  5. 计算机证英语四六级证驾驶证,学校毕业要求有两个技能证书,计算机二级,四六级,到底算不算技能证?...
  6. mysql init 崩溃_MySQL · 引擎特性 · InnoDB崩溃恢复
  7. 量化分析(一)数据采集、预处理SVM建模
  8. Python制作短信发送程序
  9. 产品升级|10月产品捷报频传,解锁更多新成就!
  10. 20220609 C++版的ends_with