如何在 Flutter 中禁用文本字段中的自动建议以及 IOS 中 KEYBOARDTYPE 的其他问题

问题描述 投票:0回答:1

正在开发一个词汇学习应用程序(从英语到法语,反之亦然)。 在做测验时,如果用户在建议栏上没有建议(因为它有助于拼写),我会更喜欢它。 我尝试禁用文本字段中的选项,但没有任何效果。 这是代码:

Container(
           padding: const EdgeInsets.all(8),
            child: TextFormField(
              smartQuotesType: SmartQuotesType.disabled,
              autofocus: true,
              enableSuggestions: false,
              autocorrect: false,
              controller: fieldText,
              
              keyboardType:
                  TextInputType.visiblePassword,
              enabled: pasfini,
              enableInteractiveSelection: false,
              autovalidateMode:
                  AutovalidateMode.disabled,
              decoration: InputDecoration(
                  border: OutlineInputBorder(
                    borderRadius:
                        BorderRadius.circular(10.0),
                  ),
                  labelText: 'Ecris la traduction'),
              onChanged: (value) {
                word = value;
              },
              onTap: () {
                setState(() {
                  exoEnCours = true;
                });
              },
            ),
          ),

似乎唯一可行的是,如果我将 keyboardType 设置为电子邮件地址......但在那种情况下,空格键变得非常小并且出现@符号......

我不明白为什么 enableSuggestions : false 和 autocorrect : false 不起作用。 API 文档中指定,对于 IOS:AUTOCORRECT 应设置为 false 以禁用此功能。

你知道有没有 flutter bug 吗?

我尝试在 ANDROID 设备上调试相同的代码,并且运行良好。 IOS好像有问题....

我对 TEXTFIELD 小部件的另一个选项有同样的问题:与 CAPITALIZATION 链接的选项。

TextFormField(
                    style: TextStyle(
                        fontSize: uD.device == Device.smallMobile
                            ? uD.smallFont2
                            : uD.mediumFont2),
                    initialValue: name,
                    keyboardType: TextInputType.name,
                    textCapitalization: TextCapitalization.words,
                    autocorrect: false,
                    enableSuggestions: false,
                    decoration: kTextFormFieldDecoration.copyWith(
                      labelText: 'Nom du responsable légal',
                    ),

它从不将字段文本的首字母大写。它在 Android 上运行良好。

flutter keyboard flutter-textformfield
1个回答
0
投票

我遇到了与您相同的问题,解决方案是使用 Cupertino 文本字段类型。您可以通过首先将其导入包来实现它 导入'package:flutter/cupertino.dart';

然后你使用 TextInputType.name 而不是 TextInputType.emailAddress 这将完美地禁用自动建议。将其与禁用以下建议的其他因素属性一起包括在内:

自动更正:错误, enableSuggestions: false, enableIMEPersonalizedLearning: false, TextInputType.name,

© www.soinside.com 2019 - 2024. All rights reserved.