我想在虚拟键盘被关闭时调用 mSearchView.clearFocus(),该怎么做?
我的问题是一旦 SearchView 获得焦点,它就会保持焦点,所以如果我使用后退按钮关闭虚拟键盘,并打开一个 AlertDialog - 例如 - 一旦我关闭 AlertDialog,虚拟键盘就会再次弹出,因为搜索视图仍然有焦点,好像它重新获得焦点。
对于我使用的 SearchView:
android:iconifiedByDefault="false"
android:focusable="false"
对于活动包含我使用的 SearchView:
android:windowSoftInputMode="stateUnspecified|adjustPan"
即使我将其更改为以下内容,我也会遇到同样的问题
android:windowSoftInputMode="stateAlwaysHidden|adjustPan"
开斋节 1:
改变
android:iconifiedByDefault="false"
成为
android:iconifiedByDefault="true"
没有解决问题,我得到相同的结果。
编辑2:
我尝试了创建自定义 SearchView 并覆盖 onKeyPreIme 并调用 clearFocus() 的方法,但没有调用 onKeyPreIme。
public class ModifiedSearchView extends SearchView {
public ModifiedSearchView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean onKeyPreIme (int keyCode, KeyEvent event)
{
if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP) {
clearFocus();
return false;
}
return super.dispatchKeyEvent(event);
}
}