如何禁用 EditText 中的 SwiftKey(第三方键盘)行为?

Posted

技术标签:

【中文标题】如何禁用 EditText 中的 SwiftKey(第三方键盘)行为?【英文标题】:How to disable the SwiftKey (third-party keyboard) behavior in EditText? 【发布时间】:2018-01-29 10:33:24 【问题描述】:

我在我的 android 应用程序中使用标准的 EditText 控件。 此 EditText 的输入只能从应用程序的内置键盘插入。

当设备上安装SwiftKey(第三方键盘应用程序)时,会导致光标跳动等奇怪行为,并在某些文本下方加下划线。

我的问题是,如何避免在 EditText 控件中出现任何第三方键盘效果。

【问题讨论】:

【参考方案1】:

在 EditText.InputType 上使用 TYPE_TEXT_FLAG_NO_SUGGESTIONS 标志解决了这个问题。

【讨论】:

嗨@Ben,我在我的应用程序中使用它,但我仍然可以在我的应用程序中使用 swiftkey。【参考方案2】:

我的问题是,如何避免在 EditText 控件中出现任何第三方键盘效果。

你不能。输入法编辑器(“键盘应用程序”)的选择取决于用户,而不是您。 AFAIK,有些设备默认使用 SwiftKey。

【讨论】:

但我注意到我设备上的其他应用程序不受 SwiftKey 的影响(我假设它们使用相同的 EditText)。我会注意到 EditText 的输入不是通过系统的键盘输入的,所以我正在寻找一种方法来静音第三方键盘效果(如自动更正、跳跃的光标和不需要的下划线)。 @Ben:“但我注意到我设备上的其他应用程序不受 SwiftKey 影响”——那么也许你对你的EditText 做了一些奇怪的事情,而这些应用程序没有。数以百万计的人在数以千计的应用程序中使用 SwiftKey。如果您描述的问题很常见,SwiftKey 很可能会发现问题并修复它。问题更有可能是针对您的具体情况。 “所以我正在寻找一种方法来使第三方键盘效果静音”——这通常是不可能的,尤其是在数百种不同的第三方键盘中。 好的,谢谢。您知道不受系统键盘影响的 EditText 的替代组件吗? @Ben:Android 中唯一的文本输入组件是EditText(加上继承自EditText 的东西)。您可以考虑在提供minimal reproducible example 的地方提出单独的 Stack Overflow 问题。这将包括您的布局和与此 EditText 关联的 Java 代码,以及对您的症状的详细解释,希望有人可以提出一些可能有帮助的设置。但是,不能保证这些设置可以解决所有键盘实现中的任何问题。 好的,非常感谢您的解释。如果有人想添加任何内容,我将保持此线程开放一段时间。

以上是关于如何禁用 EditText 中的 SwiftKey(第三方键盘)行为?的主要内容,如果未能解决你的问题,请参考以下文章

如何检测键盘上的用户活动

如何在 Android 中禁用 EditText

如何从 EditText 禁用仅剪切选项?

在 EditText 上禁用剪贴板建议中的粘贴

如何从 EditText 禁用复制和粘贴

Android EditText禁用编辑但允许滚动