【问题标题】:In Android EditText, how to remove suggestions bar from soft keyboard?在 Android EditText 中,如何从软键盘中删除建议栏?
【发布时间】:2014-08-28 15:56:59
【问题描述】:

我的一个布局中有一个带有 EditText 字段的 android 应用程序。我为我的 EditText 设置了android:inputType="textNoSuggestions" 属性。文本字段不再显示建议。但是,建议栏仍然位于软键盘的顶部,现在似乎仅用于显示语音输入麦克风图标的目的。我也不想/关心这个字段的语音输入,并且想从这个软键盘中删除建议栏。有没有办法做到这一点,可能使用另一个 inputType 标志?

【问题讨论】:

  • 通常语音输入图标位于键盘底部的空格键旁边。您使用第三方键盘吗?他们以忽略“事物”而闻名
  • 不,这是 Nexus 5 w/ kit kat 4.4 stock OS stock keyboard
  • 这并没有解决完全删除建议栏的问题。

标签: android android-layout keyboard


【解决方案1】:

我找到了适合我的解决方案。 在 Google Now 启动器中按下搜索栏的同时查看 logcat 会显示以下内容:

07-03 19:50:07.760    1304-1304/? W/LatinIME﹕ Deprecated private IME option specified: nm
07-03 19:50:07.760    1304-1304/? W/LatinIME﹕ Use com.google.android.inputmethod.latin.noMicrophoneKey instead

所以,我所做的是在 EditText xml 中添加这一行:

android:privateImeOptions="nm"

“nm”取自LatinIME的源代码: http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android-apps/4.0.1_r1/com/android/inputmethod/latin/LatinIME.java#93

public static final String IME_OPTION_NO_MICROPHONE_COMPAT = "nm";

希望这会有所帮助!

【讨论】:

  • 工作和帮助很大。谢谢。
  • 哇,很棒的观察,但我仍然看到建议栏。不过麦克风图标不见了。
【解决方案2】:

在保留多行文本的同时删除建议和建议栏的 XML 属性组合如下:

android:privateImeOptions="nm"
android:inputType="textNoSuggestions | textMultiLine"

android:privateImeOptions="nm"
android:inputType="textFilter | textMultiLine"

【讨论】:

  • 我注意到实现此功能的一个缺点是,现在将 maxLines 设置为 3 行的 EditText 字段仅保留为不理想的一行。我正在研究一种解决方法。
【解决方案3】:

将 android:inputType="textNoSuggestions" 添加到editext

【讨论】:

    猜你喜欢
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-28
    • 2012-02-18
    • 1970-01-01
    • 2011-10-17
    • 1970-01-01
    相关资源
    最近更新 更多