我有一个非常简单的屏幕,带有几个 EditText 小部件和一个按钮。在模拟器中,当我单击 EditText 小部件时,会出现一个虚拟键盘。但是,我似乎无法摆脱它。单击屏幕上的空白区域不会使其消失。只有单击虚拟返回键或硬件返回按钮使其消失。
我手边没有真正的 Android 手机,所以这只是一个模拟器,还是在实际设备上会像这样。如果是,当我单击表单上的其他位置时,我该怎么做才能使虚拟键盘消失?
我有一个非常简单的屏幕,带有几个 EditText 小部件和一个按钮。在模拟器中,当我单击 EditText 小部件时,会出现一个虚拟键盘。但是,我似乎无法摆脱它。单击屏幕上的空白区域不会使其消失。只有单击虚拟返回键或硬件返回按钮使其消失。
我手边没有真正的 Android 手机,所以这只是一个模拟器,还是在实际设备上会像这样。如果是,当我单击表单上的其他位置时,我该怎么做才能使虚拟键盘消失?
单击后退按钮。他们的键盘是一项活动。单击屏幕的随机区域时,没有一种简单的方法可以移除键盘。
AngryHacker,我会向您推荐这篇文章如何关闭/隐藏 android 软键盘。
希望这可以帮助。
我认为在模拟器中您可以按 Escape 隐藏键盘。在真实设备上,键盘上有一个隐藏按钮,或者您可以按 ui 中的其他位置。这就是它在我的 HTC Desire S 上的工作方式。
我遇到了这个问题并解决了它。这个问题InputMethodManager.SHOW_FORCED
与我的项目中的价值有关。当我打开键盘SHOW_FORCED
时,当我尝试关闭键盘时,键盘没有关闭。
例如 :
activity.getSystemService(Context.INPUT_METHOD_SERVICE)).showSoftInput(view, InputMethodManager.SHOW_FORCED);
如果您使用上述方式打开键盘,您可以尝试使用值更改SHOW_FORCED
值SHOW_IMPLICIT
例如 :
activity.getSystemService(Context.INPUT_METHOD_SERVICE)).showSoftInput(view, InputMethodManager.SHOW_IMPLICIT);
我有运行 Andriod 2.3.6 的 Galaxy S2。
在登录网站时输入所需的文本后,我遇到了键盘没有移开的问题。我发现点击硬件返回按钮确实可以让虚拟键盘不受影响。但有时它会使网络浏览器返回一页。这令人沮丧,因为我必须重新输入我正在连接的任何网站的登录信息。希望 Android 4.x 已经解决了其中一些故障问题。
您可以通过执行以下步骤来实现此目的:
通过添加以下属性使父视图(您的活动的内容视图)可点击和可聚焦
android:clickable="true"
android:focusableInTouchMode="true"
实现一个 hideKeyboard() 方法
public void hideKeyboard(View view) {
InputMethodManager inputMethodManager =(InputMethodManager)getSystemService(Activity.INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_IMPLICIT_ONLY);
}
最后,设置编辑文本的 onFocusChangeListener。
edittext.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (!hasFocus) {
hideKeyboard(v);
}
}
});