先爆照:
![](https://i-blog.csdnimg.cn/blog_migrate/b62531516234105fbb111ba981d99fa3.jpeg)
问题:
使用过popupWindow的时候,我们为了让其它地方不可点击,我们一般会pw.setFocusable(true),但是当我们这样设置之后,问题出现了,按返回键或者menu菜单键没有反应,这是原因呢?
PopupWindow 跟我们的 Activity 不一样,因为我们在构造 PW 的时候往往不是继承来的,而是 new 出来的,所以不能使用重写 PW 的 onKeyDown() 之类的方法来截获键盘事件。
比如我们这样写,然并卵,毛反应都没有
// 按一下退出程序
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
// 按返回退出popupwindow.dismiss();
if (mPopupWindow != null && mPopupWindow.isShowing()) {
mPopupWindow.dismiss();
}
return super.dispatchKeyEvent(event);
} else {
return super.dispatchKeyEvent(event);