PopuWindow全屏状态下响应返回键
来源:互联网 发布:final cut pro mac版 编辑:程序博客网 时间:2024/05/19 04:55
最近项目较忙,没有时间去看书与写博客。这里分享下在项目中遇到的一引起典型的例子吧。
前面写了一篇防小米的自定义时间控件,也是在项目中遇到。上下效果图。这里使用popupWindow弹出控制,变灰的部分是popuwindow的背景。这里会遇到一个问题,在没点过确定时,返回键会失效。
这是为什么呢? 通过查阅,原因是这样, 全屏状态上popuwindw抢占了activity的焦点,而返回键是属于Activity的事件。所以无法被响应。
这里给出解决方案就是要想办法让popuwindow的控件去响应返回键,通常选择根布局。
1.该 Layout 的 Focusable 和 FocusableInTouchMode 都为 true。
2. 对该 View 重写 OnKeyListener() 事件。
下面给出弹出popuwindow的代码
/** * 弹出时间选择对话框*/private void showDateDialog() { View view = this.getLayoutInflater().inflate(R.layout.dialog_datetimepicker, null);if (popupWindow == null) {popupWindow = new PopupWindow(view, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT, true);popupWindow.showAtLocation(view, Gravity.CENTER| Gravity.CENTER, 0, 0);popupWindow.setAnimationStyle(R.style.dialogAnimation);ColorDrawable dw = new ColorDrawable(0x000000);popupWindow.setBackgroundDrawable(dw);popupWindow.update(); view.setOnKeyListener(new View.OnKeyListener() {@Overridepublic boolean onKey(View v, int keyCode, KeyEvent event) {if ((keyCode == KeyEvent.KEYCODE_BACK) && (popupWindow.isShowing())) {popupWindow.dismiss();return true; }return true; } });popupWindow.setFocusable(true); Button saveBtn = (Button) view.findViewById(R.id.saveBtn); saveBtn.setOnClickListener(this);datePicker = (MyDatePicker) view.findViewById(R.id.datePicker); } else {if (!popupWindow.isShowing()) {popupWindow.showAtLocation(view, Gravity.RIGHT | Gravity.BOTTOM, 0, 0); } }}
0 0
- PopuWindow全屏状态下响应返回键
- http响应返回的状态码
- HTTP状态码响应参数返回值
- 休眠状态下,响应按键
- 全屏状态下的输入法布局问题
- getResponseCode获取URL响应状态码 HTTP状态返回码
- PopuWindow
- popuwindow
- popuwindow
- PopuWindow
- ios-app杀死状态下响应推送
- http协议各个响应状态200_301_404_500等返回值
- 让返回键失去响应
- Popuwindow点击外部控件切换popuwindow——解决点击外部事件不响应问题。
- android 全屏 屏蔽返回键 代码
- 如何在非全屏状态下,不显示title标题栏
- Flex4 VideoDisplay smooth 在全屏状态下消除锯齿
- Android在全屏状态下键盘覆盖输入框问题
- 加藤嘉一谈中国80后90后的谋生状态
- adb命令和adb shell命令
- 简历模板
- 数组与ARRAYLIST的关系与区别
- 配置vim,打造自己的C IDE(二)
- PopuWindow全屏状态下响应返回键
- 献给初学iOS的小盆友们——微博app项目开发之十六搭建发送微博界面(上)
- linux c语言 线程资源释放
- Fragment之实现Fragment之间的通信
- 关于Ubuntu没有声音的解决方法
- 解决Spring Security 表单上传文件CSRF失效的问题
- 常见数据库id号编码
- 今年暑假不ac
- 线程中if的陷阱