我如何 disable/enable TextFormField 基于从 DropDowButton 中选择的值?
how can i disable/enable TextFormField based on a selected value from DropDowButton in flutter?
我正在开发一个 flutter 应用程序,我创建了一个 DropDowButton menu,其中包含 2 个项目(私人聊天 和 phone number) 和一个 TextFormField phonenum.
当 phone number 被选中时,我想启用 TextFormField phonenum。否则它总是禁用。
有办法吗?
提前致谢!
这是我的鳕鱼:
Widget menu(){
return DropdownButtonFormField(
decoration: InputDecoration(
border: OutlineInputBorder(),
labelText: 'select a way to contact with the buyer',
labelStyle: TextStyle(
fontSize: 16,
color: Colors.grey,
fontFamily: 'Almarai'
),
),
items: <String>['phone number', 'private chat'].map((String value) {
return DropdownMenuItem<String>(
value: value,
child: Text(value),
);
}).toList(),
onChanged: (String? newValue) {
setState(() {
dropdownvalue = newValue!;
});
},
);
}
Widget phonenum(){
return
TextFormField(
maxLength: 10,
decoration: InputDecoration(
border: OutlineInputBorder(),
labelText: 'phone number',
labelStyle: TextStyle(
fontSize: 16,
color: Colors.grey,
fontFamily: 'Almarai'
),
),
);
}
TextFormField
小部件有一个 enabled
属性,您可以使用它:
TextFormField(
enabled: dropdownvalue == 'phone number',
// ...
);
Try the full test code on DartPad
屏幕截图
禁用字段
启用字段
我正在开发一个 flutter 应用程序,我创建了一个 DropDowButton menu,其中包含 2 个项目(私人聊天 和 phone number) 和一个 TextFormField phonenum.
当 phone number 被选中时,我想启用 TextFormField phonenum。否则它总是禁用。
有办法吗? 提前致谢!
这是我的鳕鱼:
Widget menu(){
return DropdownButtonFormField(
decoration: InputDecoration(
border: OutlineInputBorder(),
labelText: 'select a way to contact with the buyer',
labelStyle: TextStyle(
fontSize: 16,
color: Colors.grey,
fontFamily: 'Almarai'
),
),
items: <String>['phone number', 'private chat'].map((String value) {
return DropdownMenuItem<String>(
value: value,
child: Text(value),
);
}).toList(),
onChanged: (String? newValue) {
setState(() {
dropdownvalue = newValue!;
});
},
);
}
Widget phonenum(){
return
TextFormField(
maxLength: 10,
decoration: InputDecoration(
border: OutlineInputBorder(),
labelText: 'phone number',
labelStyle: TextStyle(
fontSize: 16,
color: Colors.grey,
fontFamily: 'Almarai'
),
),
);
}
TextFormField
小部件有一个 enabled
属性,您可以使用它:
TextFormField(
enabled: dropdownvalue == 'phone number',
// ...
);
Try the full test code on DartPad