我有一个非常简单的屏幕,里面有几个EditText小部件和一个按钮。在模拟器中,当我单击EditText小部件时,会出现一个虚拟键盘。但是,我似乎无法摆脱它。单击屏幕上的空白区域不会使其消失。只需单击虚拟返回键或硬件后退按钮即可消失。
我没有真正的Android手机,所以这只是一个模拟器,或者在实际设备上会是这样的。如果是,当我点击表单上的其他地方时,我该怎么做才能使虚拟键盘消失?
答案 0 :(得分:3)
单击后退按钮。他们键盘是一项活动。单击屏幕的随机区域时,没有一种简单的方法可以取下键盘。
答案 1 :(得分:3)
AngryHacker,我想推荐你发表这篇文章how to close/hide the android soft keyboard。
希望这有帮助。
答案 2 :(得分:2)
我认为在模拟器中你可以按Escape来隐藏键盘。在真实设备上,键盘上有一个隐藏按钮,或者您可以按下ui中的其他位置。无论如何,这就是我的HTC Desire S的工作原理。
答案 3 :(得分:2)
我遇到了这个问题,我解决了这个问题。此问题与我的项目中的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);
答案 4 :(得分:0)
我有运行Andriod 2.3.6的Galaxy S2 在登录网站时输入所需文本后,我的键盘问题没有移开。我发现点击硬件返回按钮确实会使虚拟键盘不受影响。但偶尔会有网页浏览器返回一页。这令人沮丧,因为我必须重新输入我正在连接的任何网站的登录信息。希望Android 4.x已经解决了一些这些棘手的问题。
答案 5 :(得分:0)
您可以通过执行以下步骤来实现此目的:
通过添加以下属性,使父视图(活动的内容视图)可单击并可聚焦
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);
}
最后,设置edittext的onFocusChangeListener。
edittext.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (!hasFocus) {
hideKeyboard(v);
}
}
});