【问题标题】:android - show soft keyboard on demandandroid - 按需显示软键盘
【发布时间】:2011-09-22 10:33:16
【问题描述】:

您好,我将 edittext 控件包装到一个控件上,该控件应用户请求显示在屏幕上。它覆盖整个屏幕,直到用户按下键盘上的“完成”按钮。

我无法在屏幕上明确显示控件。只有当用户点击控制时才会显示它。我错过了什么吗?

我什至尝试了这个,当我启动存在编辑文本的覆盖时它不会启动它:

customCOntrol.showKeyboard();

public void showKeyboard()
    {
        InputMethodManager imm = (InputMethodManager)_context.getSystemService(Context.INPUT_METHOD_SERVICE);
        imm.hideSoftInputFromWindow(this._textView.getWindowToken(), InputMethodManager.SHOW_IMPLICIT);
    }

这是我在配置文件 android:windowSoftInputMode="stateHidden|adjustPan" 中的屏幕本身的设置

提前谢谢你

【问题讨论】:

    标签: android soft-keyboard


    【解决方案1】:

    在你调用的 showKeyboard 函数中:

     imm.hideSoftInputFromWindow(this._textView.getWindowToken(), InputMethodManager.SHOW_IMPLICIT);
    

    这将从窗口中隐藏软输入键盘! 你想显示键盘吗?如果是,那么您会使用:

     imm.showSoftInput(view, flags, resultReceiver);
    

    编辑:我认为您也可以从 InputMethodManager 切换键盘,尝试:

     imm.toggleSoftInput(0, 0);
    

    【讨论】:

    • 谢谢 toggleSoftInput(0, 0) 工作。我不敢相信我用 hide 犯的心理错误 :) 顺便说一句,第一个错误。
    • 一个问题,键盘在上面但是控件的焦点不是你,所以用户仍然需要点击编辑文本。如何使edittext具有闪烁的指示器?
    • 我的另一个问题是如何直接在屏幕上做同样的事情(带上键盘)。它似乎不起作用。键盘出现一两秒钟,然后消失。不知道是什么原因造成的。
    【解决方案2】:

    @dropsOfJupiter

    您可以在启动包含 EditText 引用的 Activity 或 Fragment 时执行以下操作:editText.requestFocus()。这会将焦点放在 EditText 上,并带上软键盘。

    我希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2013-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-22
      • 2020-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多