一种理想的方法是使用ListView 来保存您的TextFields。它首先会保存您的初始 TextFields,然后是一个 Column 占位符,当您点击 AddOwner 按钮时,它可以添加额外的 TextFields。一个简化的例子:
ListView(
children: <Widget>[
TextFormField(
decoration: InputDecoration(labelText: 'name'),
),
TextFormField(
decoration: InputDecoration(labelText: 'phone'),
),
Column(children: additionalTextFields,),
],
),
并且在您的 AddOwner 按钮中,您将调用该方法以根据需要添加更多条目:
var additionalTextFields = List<Widget>();
void _addNewTextFields() {
setState(() {
additionalTextFields.add(
TextFormField(
decoration: InputDecoration(labelText: 'name'),
),
);
additionalTextFields.add(
TextFormField(
decoration: InputDecoration(labelText: 'phone'),
),
);
});
}