相关疑难解决方法(0)

在Stateless小部件中使用TextFormField非常困难

我试图在无状态小部件中使用TextFormField以及ScopedModel来处理其中的文本并面临如下的各种问题.

  1. 我尝试使用控制器进行字段,但每次我输入一些文本并在键盘上按完,文本就会被清除.不知道为什么.

  2. 如果我删除控制器,文本将保留在字段中,但会创建有关如何从字段获取文本的新问题.我通过使用回调onFieldSubmitted来解决它.

  3. 但结果是,当我们点击键盘上的完成按钮时,onFieldSubmitted才被调用.如果我在字段中输入文本而不是单击确定,单击另一个字段,将不会调用回调,我将无法跟踪用户在字段中输入的内容.

对此有何解决方案?

附加问题的示例代码.

  class LoginPageStateless extends StatelessWidget {

  final loginUsernameController = TextEditingController();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      resizeToAvoidBottomPadding: true,
      body: ScopedModelDescendant<AccountModel>(
        builder: (context, child, model) {
          return Form(
            //key: _formKey,
            child: Column(
              crossAxisAlignment: CrossAxisAlignment.start,
              children: <Widget>[
                TextFormField(
                  style: TextStyle(fontSize: 15.0),
                  decoration: InputDecoration(
                    labelText: 'Email id',
                    hintText: 'johndoe@ipropal.com',
                  ),
                  controller: loginUsernameController,
                  onFieldSubmitted: model.updateLoginUsernameText,
                ),
                TextFormField(
                  style: TextStyle(fontSize: 15.0),
                  decoration: InputDecoration(
                    labelText: 'Password',
                  ),
                  controller: loginUsernameController,
                  onFieldSubmitted: model.updateLoginUsernameText,
                  obscureText: true,
                ),
              ],
            ), …
Run Code Online (Sandbox Code Playgroud)

android ios flutter flutter-layout

6
推荐指数
1
解决办法
2089
查看次数

标签 统计

android ×1

flutter ×1

flutter-layout ×1

ios ×1