【问题标题】:Nativescript: how to turn off predictions for textField on android?Nativescript:如何关闭 android 上 textField 的预测?
【发布时间】:2020-09-03 13:59:01
【问题描述】:

所以我正在使用打字稿编写我的应用程序,并且我想禁用在您在输入中输入内容时出现的预测。即使在设备上启用了它们,我也想禁用它们。我得到了对我的输入(textField)元素的引用,如下所示:

this.page.getViewById("place")

在 nativescript 文档中,我没有看到以编程方式关闭预测的选项,但我知道它可以通过使用 setInputType 方法并传递标志 TYPE_TEXT_FLAG_NO_SUGGESTIONS 的本机函数 (https://developer.android.com/reference/android/widget/EditText.html) 来完成。

所以我像这样访问本机函数:

var input_type = new android.text.InputType("TYPE_TEXT_FLAG_NO_SUGGESTIONS");

this.page.getViewById("place").android.setInputType( input_type );

但我猜我初始化 InputType 类不正确,因为它抛出了一个错误:

First argument must be implementation object

【问题讨论】:

  • TYPE_TEXT_FLAG_NO_SUGGESTIONS 是一个整数...检查文档中的值并使用它...
  • 啊,你是对的。将InputType("TYPE_TEXT_FLAG_NO_SUGGESTIONS") 更改为InputType(524288),但得到相同的错误。
  • TextField 具有属性autocorrect - docs.nativescript.org/api-reference/classes/…。您可以将此属性设置为 false 并且预测应该停止
  • 不确定autocorrect 做了什么,但它肯定不会禁用预测。 this.page.getViewById<textFieldModule.TextField>("place").autocorrect = false;
  • 好的,自动更正实际上会禁用自动更正 - 如果您键入“Ca”并按空格键,它不会自动更正为“Can”。但是,我仍然看到键盘上方的建议窗口,我需要以编程方式将其删除。我该怎么做?

标签: android typescript native nativescript


【解决方案1】:

啊,看在上帝的份上,终于搞定了:

this.page.getViewById<textFieldModule.TextField>("place").android.setInputType(android.text.InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS | android.text.InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);

【讨论】:

  • 你知道如何用 ios 做到这一点吗?
【解决方案2】:

只是为了扩展@Starwave 解决方案,您可以在 TextField 上设置(加载)事件,然后在触发器内部禁用这样的建议

onTextFieldLoaded(args) {
  let textfield: TextField = <TextField>args.object;
  if (isAndroid) {
    textfield.android.setInputType(
      android.text.InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS | 
      android.text.InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD
    );
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-13
    • 1970-01-01
    • 2017-05-09
    • 2019-02-25
    • 1970-01-01
    • 2020-07-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多