所选日期不显示在 textField 底部选择器中
Selected date don't show in the textField Bottom Picker flutter
我仍然是 Dart 和 flutter 的初学者 我正在尝试 Select 在表单中约会,并在选择时在文本字段中显示它,但是当我选择日期时没有任何显示
代码如下:
TextField(
controller: dateinput,
textAlign: TextAlign.center,
readOnly: true,
onChanged: (value) {
birth = value ;
},
onTap: () async {
BottomPicker.date(
title: "Set your Birthday",
titleStyle: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 15,
color: Colors.teal
),
onChange: (value) {
print(value);
},
onSubmit: (value) {
print(value);
},
bottomPickerTheme: BOTTOM_PICKER_THEME.plumPlate
).show(context);
},
您目前正在打印您从 BottomPicker 选取的值。还尝试将控制器的文本设置为值:
onTap: () async {
BottomPicker.date(
title: "Set your Birthday",
titleStyle: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 15,
color: Colors.teal
),
onChange: (value) {
print(value);
setState({
dateinput.text = value.toString();
});
},
onSubmit: (value) {
print(value);
setState({
dateinput.text = value.toString();
});
},
bottomPickerTheme: BOTTOM_PICKER_THEME.plumPlate
).show(context);
}
既然你用的是控制器,就没必要setState
。无论如何它都会显示在屏幕上。此外,您不需要同时覆盖 onSubmit
和 onChange
;根据您的需要,其中一个就足够了。
onTap: () => BottomPicker.date(
title: "Set your Birthday",
titleStyle: const TextStyle(
fontWeight: FontWeight.bold,
fontSize: 15,
color: Colors.teal,
),
onSubmit: (value) => controller.text = '$value',
).show(context),
我仍然是 Dart 和 flutter 的初学者 我正在尝试 Select 在表单中约会,并在选择时在文本字段中显示它,但是当我选择日期时没有任何显示
代码如下:
TextField(
controller: dateinput,
textAlign: TextAlign.center,
readOnly: true,
onChanged: (value) {
birth = value ;
},
onTap: () async {
BottomPicker.date(
title: "Set your Birthday",
titleStyle: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 15,
color: Colors.teal
),
onChange: (value) {
print(value);
},
onSubmit: (value) {
print(value);
},
bottomPickerTheme: BOTTOM_PICKER_THEME.plumPlate
).show(context);
},
您目前正在打印您从 BottomPicker 选取的值。还尝试将控制器的文本设置为值:
onTap: () async {
BottomPicker.date(
title: "Set your Birthday",
titleStyle: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 15,
color: Colors.teal
),
onChange: (value) {
print(value);
setState({
dateinput.text = value.toString();
});
},
onSubmit: (value) {
print(value);
setState({
dateinput.text = value.toString();
});
},
bottomPickerTheme: BOTTOM_PICKER_THEME.plumPlate
).show(context);
}
既然你用的是控制器,就没必要setState
。无论如何它都会显示在屏幕上。此外,您不需要同时覆盖 onSubmit
和 onChange
;根据您的需要,其中一个就足够了。
onTap: () => BottomPicker.date(
title: "Set your Birthday",
titleStyle: const TextStyle(
fontWeight: FontWeight.bold,
fontSize: 15,
color: Colors.teal,
),
onSubmit: (value) => controller.text = '$value',
).show(context),