Android popupwindow 拦截返回键怎么弄的?

qq_24697875 2017-06-19 03:59:09
popupWindow.setOutsideTouchable(false);
popupWindow.setFocusable(true);
contentView.setFocusable(true);
contentView.setFocusableInTouchMode(true);
contentView.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (popupWindow != null) {
popupWindow.dismiss();
}
}
return false;
}
});
点击返回键不进OnKeyListener,怎么处理?
...全文
921 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
寒冰大神 2017-06-19
  • 打赏
  • 举报
回复
popupWindow = new PopupWindow(view,ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);用这个构造方法 然后在Activity的onKeyDown里拦截 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { if (popupWindow != null && popupWindow .isShowing()) { popupWindow.dismiss(); return true; } } return super.onKeyDown(keyCode, event); }
MissZzz丶 2017-06-19
  • 打赏
  • 举报
回复
contentView.setOnKeyListener(new View.OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { if (popupWindow != null) { popupWindow.dismiss(); } return ture; //事件拦截,不要继续往下传了 } return false; } });
萌新只喝茶 2017-06-19
  • 打赏
  • 举报
回复
不是太明白,我也是个小白。如果LZ说的是让返回键失效的话,我这里有一个 @Override public boolean onKeyUp(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { return true; } return super.onKeyUp(keyCode, event); }

80,469

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧