我如何 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

屏幕截图

禁用字段

启用字段