I created Two text fields in flutter using a function, but I want to use two different TextEditingControllers for each. How can I pass a TextEditingController as a paramater to a function?
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'),
],
);
}
You can pass it as an argument to your function:
Widget fieldmaker(String title,TextEditingController controller) {
return Container(
width: double.infinity,
height: 50,
padding: EdgeInsets.symmetric(
horizontal: 10,
),
child: TextField(
controller: 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: [
//pass them to the function from here
fieldmaker('Title',titlecontroller),
fieldmaker('Amount',amountcontroller),
],
);
}