7

我有一个非常简单的屏幕,带有几个 EditText 小部件和一个按钮。在模拟器中,当我单击 EditText 小部件时,会出现一个虚拟键盘。但是,我似乎无法摆脱它。单击屏幕上的空白区域不会使其消失。只有单击虚拟返回键或硬件返回按钮使其消失。

我手边没有真正的 Android 手机,所以这只是一个模拟器,还是在实际设备上会像这样。如果是,当我单击表单上的其他位置时,我该怎么做才能使虚拟键盘消失?

4

6 回答 6

7

单击后退按钮。他们的键盘是一项活动。单击屏幕的随机区域时,没有一种简单的方法可以移除键盘。

于 2010-12-29T06:28:04.077 回答
4

AngryHacker,我会向您推荐这篇文章如何关闭/隐藏 android 软键盘

希望这可以帮助。

于 2010-12-29T08:23:19.597 回答
2

我认为在模拟器中您可以按 Escape 隐藏键盘。在真实设备上,键盘上有一个隐藏按钮,或者您可以按 ui 中的其他位置。这就是它在我的 HTC Desire S 上的工作方式。

于 2011-07-25T20:24:59.270 回答
2

我遇到了这个问题并解决了它。这个问题InputMethodManager.SHOW_FORCED与我的项目中的价值有关。当我打开键盘SHOW_FORCED时,当我尝试关闭键盘时,键盘没有关闭。

例如 :

activity.getSystemService(Context.INPUT_METHOD_SERVICE)).showSoftInput(view, InputMethodManager.SHOW_FORCED);

如果您使用上述方式打开键盘,您可以尝试使用值更改SHOW_FORCEDSHOW_IMPLICIT

例如 :

activity.getSystemService(Context.INPUT_METHOD_SERVICE)).showSoftInput(view, InputMethodManager.SHOW_IMPLICIT);
于 2016-03-03T17:25:55.303 回答
0

我有运行 Andriod 2.3.6 的 Galaxy S2。
在登录网站时输入所需的文本后,我遇到了键盘没有移开的问题。我发现点击硬件返回按钮确实可以让虚拟键盘不受影响。但有时它会使网络浏览器返回一页。这令人沮丧,因为我必须重新输入我正在连接的任何网站的登录信息。希望 Android 4.x 已经解决了其中一些故障问题。

于 2013-02-18T16:54:27.667 回答
0

您可以通过执行以下步骤来实现此目的:

  1. 通过添加以下属性使父视图(您的活动的内容视图)可点击和可聚焦

        android:clickable="true" 
        android:focusableInTouchMode="true" 
    
  2. 实现一个 hideKeyboard() 方法

        public void hideKeyboard(View view) {
            InputMethodManager inputMethodManager =(InputMethodManager)getSystemService(Activity.INPUT_METHOD_SERVICE);
            inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_IMPLICIT_ONLY);
        }
    
  3. 最后,设置编辑文本的 onFocusChangeListener。

        edittext.setOnFocusChangeListener(new View.OnFocusChangeListener() {
            @Override
            public void onFocusChange(View v, boolean hasFocus) {
                if (!hasFocus) {
                    hideKeyboard(v);
                }
            }
        });
    

资源

于 2014-09-10T11:54:00.107 回答