Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 发生更改时,TextFormField光标未移动_Flutter_Dart - Fatal编程技术网

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()中设置了一个属性。