如何解决将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 举报,一经查实,本站将立刻删除。