微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将TextEditingController作为参数传递给函数?

如何解决将TextEditingController作为参数传递给函数?

我使用一个函数Flutter中创建了两个文本字段,但是我想为每个文本字段使用两个不同的TextEditingControllers。如何将TextEditingController作为参数传递给函数

         Widget fieldmaker(String title) {
        return Container(
          width: double.infinity,height: 50,padding: EdgeInsets.symmetric(
            horizontal: 10,),child: TextField(
            controller:,decoration: Inputdecoration(
              hintText: title,hintStyle: TextStyle(
                fontSize: 20,contentPadding: EdgeInsets.all(2),);
     }
final amountcontroller=TextEditingController();
  final titlecontroller=TextEditingController();

        Widget build(BuildContext context) {
      return Column(
        children: [
          fieldmaker('Title'),fieldmaker('Amount'),],);
    }

解决方法

通过它

fieldmaker('Title',amountcontroller);

并修改您的功能

fieldmaker(String title,TextEditingController yourTextEditingController){
//use yourTextEditingController here
return Container(
          width: double.infinity,height: 50,padding: EdgeInsets.symmetric(
            horizontal: 10,),child: TextField(
            controller: yourTextEditingController,decoration: InputDecoration(
              hintText: title,hintStyle: TextStyle(
                fontSize: 20,contentPadding: EdgeInsets.all(2),);

}

,

您可以将其作为参数传递给函数:

         Widget fieldmaker(String title,TextEditingController controller) {
        return Container(
          width: double.infinity,child: TextField(
            controller: controller,);
     }
final amountcontroller=TextEditingController();
  final titlecontroller=TextEditingController();

        Widget build(BuildContext context) {
      return Column(
        children: [
          //pass them to the function from here
          fieldmaker('Title',titlecontroller),fieldmaker('Amount',amountcontroller),],);
    }
,

如果您的fieldMaker方法是一个类,则FieldMaker扩展了StatefulWidget,则该类可以创建TextController并根据标题对其进行配置。然后您可以:

children: <Widget>[
  FieldMaker('Title'),FieldMaker('Amount'),]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。