在Flutter中可以重用TextEditingController吗?

时间:2020-02-02 16:24:58

标签: flutter textfield

在我的应用程序中,有很多TextField,例如超过50个。

class BoxFieldItem extends StatelessWidget {
  BuildContext context;

  final String title;
  final String subtitle;
  TextEditingController textControler;


  BoxFieldItem(this.title,this.subtitle,){
    textControler=new TextEditingController();

  }

  @override
  Widget build(BuildContext context) {
    return Padding(
      padding: const EdgeInsets.all(8.0),
      child: TextField(
        textInputAction: TextInputAction.next,
        controller: textControler,
    /*    onChanged: (String e) {

        },*/
        decoration: InputDecoration(
            fillColor: Colors.lightBlue[40],
            filled: true,

            prefixIcon: Icon(Icons.person),

            labelText: title,
            hintText: subtitle,
            hintStyle: TextStyle(fontSize: 12),
            border:
            OutlineInputBorder(borderRadius: BorderRadius.circular(10))),
      ),
    );
  }
}

我有这个Widget类,麻烦是当我使用它时:BoxFieldItem('Title','sub'),如果我滚动或单击下一步,输入的文本不正确? 我做错了什么

1 个答案:

答案 0 :(得分:0)

取决于您的实现。我将创建一个widget,将TextField及其controller包裹起来,然后在您的页面中,您只需要使用创建的小部件并通过构造函数提供不同的配置即可。

要监听TextField中的更改,您只需提供要在页面中使用的回调即可。