Flutter 发生更改时,TextFormField光标未移动
我有一个显示Flutter 发生更改时,TextFormField光标未移动,flutter,dart,Flutter,Dart,我有一个显示textformfield的屏幕,我想检索用户输入的值。但是,当我进行更改时,光标没有移动,因此它保持在位置0。我如何解决这个问题 class ScreenFormArtikel extends StatefulWidget { final String mode; ScreenFormArtikel(this.mode); @override _ScreenFormArtikelState createState() => _ScreenFormArtik
textformfield
的屏幕,我想检索用户输入的值。但是,当我进行更改时,光标没有移动,因此它保持在位置0。我如何解决这个问题
class ScreenFormArtikel extends StatefulWidget {
final String mode;
ScreenFormArtikel(this.mode);
@override
_ScreenFormArtikelState createState() => _ScreenFormArtikelState();
}
class _ScreenFormArtikelState extends State<ScreenFormArtikel> {
var _key = GlobalKey<FormState>();
var _titleController = TextEditingController();
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Article'),
),
body: Container(
child: Form(
key: _key,
child: Column(
children: [
Consumer<ProviderArtikel>(
builder: (context, artikel, child) {
return TextFormField(
decoration: InputDecoration(
labelText: 'Title',
floatingLabelBehavior: FloatingLabelBehavior.always),
controller: _titleController,
validator: (value) {
if (value.isEmpty) {
return "Please fill this field";
}
return null;
},
onChanged: (value) {
_titleController.text = value;
},
);
},
),
RaisedButton(onPressed: () {}),
],
),
),
),
);
}
}
类ScreenFormArtikel扩展StatefulWidget{
最终字符串模式;
ScreenFormArtikel(此模式);
@凌驾
_ScreenFormArtikelState createState()=>\u ScreenFormArtikelState();
}
类_ScreenFormArtikelState扩展状态{
var_key=GlobalKey();
var_titleController=TextEditingController();
@凌驾
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(
标题:文本(“文章”),
),
主体:容器(
孩子:表格(
键:_键,
子:列(
儿童:[
消费者(
生成器:(上下文、artikel、子对象){
返回TextFormField(
装饰:输入装饰(
labelText:“标题”,
浮动LabelBehavior:浮动LabelBehavior。始终),
控制器:\标题控制器,
验证器:(值){
if(value.isEmpty){
返回“请填写此字段”;
}
返回null;
},
一旦更改:(值){
_titleController.text=值;
},
);
},
),
升起按钮(按下时:(){}),
],
),
),
),
);
}
}
我已附上下面的视频样本
对更改后的
进行注释即可
TextFormField(
decoration: InputDecoration(
labelText: 'Title',
floatingLabelBehavior: FloatingLabelBehavior.always),
controller: _titleController,
validator: (value) {
if (value.isEmpty) {
return "Please fill this field";
}
return null;
},
// onChanged: (value) {
// _titleController.text = value;
// },
),
实际上,\u titleController.text
正在设置文本onChange
,这就是光标移动到第一位的原因
您不必显式地执行onTextChange
操作。谢谢您的回复。它解决了我的问题,我最终在onEditingComplete()中设置了一个属性。