【发布时间】:2018-02-13 13:46:50
【问题描述】:
我想在虚拟键盘关闭时调用 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);
}
}
【问题讨论】:
-
你在用
menu.xml? -
不,我在包含其他视图的 LinearLayout 中有 SearchView
-
我的活动来源于AppCompatActivity
-
这个插孔有什么更新吗?
标签: android android-virtual-keyboard