gpt4 book ai didi

android - Flutter TextField 和 TextFormField 在使用初始值或 Controller 设置初始文本时重复文本

转载 作者:行者123 更新时间:2023-12-03 13:26:10 33 4
gpt4 key购买 nike

在具有 TextField 或 TextFormField 的 flutter 应用程序中,文本可以在第一次数据输入时重复。

首次输入按键时,在已预先填充文本的字段中,文本重复,然后您的按键被附加。

我在我的三星 Galaxy S7、S8 和 S9(仅限我必须测试的设备)上遇到了这种情况。这不会发生在模拟器(Galaxy Nexus9 和 Pixel 2)中。

如果我在字段末尾放置一个空格,则不会发生此问题,但是,如果我在预填充字段的中间点击(使用 Controller 或 initialValue)并按下某个键,它确实会发生。

这是一个准系统源示例:

class SampleTextFormPage extends StatefulWidget {
@override
State<StatefulWidget> createState() => new _SampleTextFormPage();
}

class _SampleTextFormPage extends State<SampleTextFormPage> {
final _scaffoldKey = new GlobalKey<ScaffoldState>();

TextEditingController _txtController;

@override
void initState() {
super.initState();

_txtController = TextEditingController(text:'Using Controller');
}

@override
Widget build(BuildContext context) { Scaffold scaffold = new Scaffold(
key: _scaffoldKey,
appBar: new AppBar(
title: new Text('Text Entry',
style: const TextStyle(
color: Colors.white)
),
backgroundColor: Colors.indigo
),
body: Column(children: [
//field 1
TextField(
autocorrect: false,
autofocus: true,
controller: _txtController,
),

//field 2
TextFormField(
autocorrect: false,
autofocus: true,
initialValue: 'Using initialValue',
)
])
);

return scaffold;
}
}

注意:我使用的是最新版本的 Flutter,并且我已经恢复到多个版本的 Flutter(一直到支持 Dart 2 的第一个版本),这个问题仍然存在。

最佳答案

作为@ DarkNeuron提到,这是三星设备上已知的 Flutter 问题。目前还没有完全治愈的方法。

截至 2020 年 2 月,已确定该问题与三星键盘缓存过程和自动更正有关。在 Flutter github 中提出了可能的临时解决方法:使用 keyboardType: TextInputType.visiblePassword对于您所有的文本输入。但有报道称它至少对韩语无效。另一个建议是检查三星设备并相应地构建:

keyboardType: samsungKeyboard ? TextInputType.visiblePassword : TextInputType.emailAddress,
autoFocus: false,

两周前修复的部分问题(标点符号重复)。但问题的主要部分仍然存在。

您可以在这里找到更多详细信息: Flutter github .

关于android - Flutter TextField 和 TextFormField 在使用初始值或 Controller 设置初始文本时重复文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52894507/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com