PopupWindow(3)back,home 键无法关闭popupwindow的解决方案
2024-10-22 09:53:21
private PopupWindow mPopupWindow; //popup window 一般popuowindow 要都个显示view,本例子中view模拟菜单.
private View mMenu; //popup window 里的view
1方案1:
1.1 设置
mMenu.setFocusableInTouchMode(true);
mMenu.setOnKeyListener(this);
mMenu.setOnTouchListener(this);
mPopupWindow.setFocusable(true);
mPopupWindow.setOutsideTouchable(true);
1.2 处理
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
switch (keyCode) {
case KeyEvent.KEYCODE_BACK:
case KeyEvent.KEYCODE_MENU:
if (mPopupWindow != null && mPopupWindow.isShowing()) {
mPopupWindow.dismiss();
}
break;
}
return true;
}
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
mPopupWindow.dismiss();
return false;
}
2.方案2:不支持menu键
/*
* setBackgroundDrawable很重要,没有这个函数 back键和menu键关闭popwindow 很麻烦,
* 有了它以后,就不用为popwindow内的控件分别设置setOnKeyListener和setOnTouchListener了
* 可以同时支持back和点popwindow外面关闭popwindow,
*/
mPopupWindow.setBackgroundDrawable(new ColorDrawable(-00000));//不支持menu键
mPopupWindow.setFocusable(true);
mPopupWindow.setOutsideTouchable(true);
最新文章
- 5 Convert Sorted List to Binary Search Tree_Leetcode
- Java Service Wrapper简介与使用
- NEC学习 ---- 布局 -三列,左侧自适应
- MVC5 + EF6 入门完整教程二:从前端的UI开始
- 重新想象 Windows 8.1 Store Apps (73) - 新增控件: DatePicker, TimePicker
- java 进制转换
- hdu 4112 Break the Chocolate(ceil floor)
- ubuntu 下搭建vsftp
- 代码静态分析工具PCLint, Splint
- Set up JBPM5.4 Final Installer to use MS SQL Server 2008 using JTDS(转)
- LabVIEW系列——合并错误(VI)的用法
- Unity3d开发IOS游戏 基础
- centos 更改hostname
- Rehat一键安装mysql脚本和备份数据库脚本
- 工作流引擎Activiti 专题
- 【spring】-- springboot配置全局异常处理器
- 第六十八天 js轮播图
- 如何在css中设置按钮button中包含图片文字对齐方式
- 只使用处理I/O的printDigit方法,编写一种方法一输出任意的double型量(可以是负的)
- MariaDB 数据库索引详解(9)