flutter - 提示不适用于 Flutter 中的 DropdownButtonFormField
问题描述
我在Flutter中有一个带有 textformfield 和 dropdownbuttonformfield 的表单。运行我的应用程序提示时对我不起作用。下拉按钮表单字段中未显示提示。它显示kkk作为初始值而不显示Select City。
我在这里使用 StatefulWidget。
帮我解决这个问题。提前致谢。
class _AddTripState extends State<AddTrip> {
var formKey = GlobalKey<FormState>();
TextEditingController nameController = TextEditingController();
TextEditingController numberController = TextEditingController();
TextEditingController datecontroller = TextEditingController();
final format = DateFormat("yyyy-MM-dd");
DateTime _dateTime;
List<String> name = ['kkk', 'rrr'];
String _dropdownvalue = 'kkk';
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Add Trip"),
),
body: Form(
key: formKey,
child: ListView(
children: <Widget>[
Text(
'Name',
textAlign: TextAlign.left,
),
TextFormField(
decoration: _inputDecoration(),
keyboardType: TextInputType.text,
controller: nameController,
validator: textValidator,
),
Text(
'Number',
textAlign: TextAlign.left,
),
TextFormField(
decoration: _inputDecoration(),
controller: numberController,
keyboardType: TextInputType.number,
validator: numberValidator,
),
Text(
'Date',
textAlign: TextAlign.left,
),
TextFormField(
readOnly: true,
controller: datecontroller,
validator: dateValidator,
decoration: InputDecoration(
border: OutlineInputBorder(),
errorBorder: OutlineInputBorder(
borderSide: BorderSide(color: Colors.amber)),
errorStyle: TextStyle(color: Colors.amber),
suffixIcon: GestureDetector(
child: Icon(
Icons.date_range,
),
onTap: () {
showDatePicker(
context: context,
initialDate: DateTime.now(),
firstDate: DateTime(2018),
lastDate: DateTime(2020))
.then((value) {
setState(() {
datecontroller.text =
DateFormat("yyyy-MM-dd").format(value);
});
});
},
),
),
),
DropdownButtonFormField<String>(
hint: Text('Select City'),
validator: _cityValidator,
decoration: InputDecoration(border: OutlineInputBorder()),
items: name.map((value) {
return DropdownMenuItem<String>(
child: Text(value), value: value);
}).toList(),
value: _dropdownvalue,
onChanged: (newValue) {
setState(() {
_dropdownvalue = newValue;
});
},
),
RaisedButton(
onPressed: submit,
child: Text('Add Trip'),
)
],
)),
);
}
我哪里错了?
解决方案
value
如果为空,则显示提示。
所以在你的代码中 - 制作 -String _dropdownvalue = 'kkk';
更改为 -String _dropdownvalue;
仅
推荐阅读
- python - 在 matplotlib 中使用乳胶着色字符串
- python - 在尝试将值存储到 Python 中的元组时遇到问题
- c - 如何使用 strtok()/strtok_r() 分割一行
- c# - 用户控制整数的最佳方式
- groovy - Jmeter - 在一个 JSR223 Sampler 中声明数组变量,以便在另一个 JSR223 Sampler 中访问它
- html - 单击 selenium python 中的跨度
- json - 如何编写用于将滚动条添加到 SharePoint 列表列中的单元格的 JSON 代码?
- c++ - 是在堆上分配的链表的私有成员的指针吗?
- java - 我的 AffineTransformation 像素之间有间隙
- c++ - 使用 memcpy 时,我的 RNG 函数中的内存访问失败