【发布时间】:2016-09-20 13:14:22
【问题描述】:
我正在开发一个 Android 应用程序,我设计了一个 popupWindow 来通过替换活动中的软键盘来显示一些视图。 popupWindow 包含一个 searchView。当我单击一个按钮时,它会显示 popupWindow 并且软键盘被隐藏。现在当 popupWindow 中的 searchView 获得焦点时,我调用该方法:
popupWindow.setFocusable(true)
显示键盘以便用户可以开始在 searchView 中输入。当 searchView 处于焦点且软键盘打开时,按返回键同时关闭 searchView 和 popupWindow。
为了解决这个问题,我创建了一个 custom searchView 并覆盖了 dispatchKeyEventPreIme 方法,如下所示。
public class CustomSearchView extends SearchView {
Context context;
AppConstant mAppConst;
public CustomSearchView(Context context, AttributeSet attrs) {
super(context, attrs);
this.context = context;
}
@Override
public boolean dispatchKeyEventPreIme(KeyEvent event) {
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
clearFocus();
}
return super.dispatchKeyEventPreIme(event);
}
}
按下后退按钮时,我已经从 searchView 中清除了焦点,但我不知道如何防止 popupWindow 关闭。
【问题讨论】:
-
试试这个.. popupWindow.setCancelable(false)
-
@MeenalSharma popupWindow 没有
setCancelable方法。AlertDialog和Dialog可以。
标签: android popupwindow