[英]How to show initial date in Cupertino Date Picker Field
這是一個帶有庫比蒂諾日期選擇器的小表格。 我想在表格上顯示初始日期。 點擊文本字段時,它將顯示一個日期選擇器,一旦選擇了新日期,它將顯示新日期
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
const double _kPickerSheetHeight = 216.0;
class AddCashPage extends StatefulWidget {
@override
_AddCashPageState createState() => _AddCashPageState();
}
class _AddCashPageState extends State<AddCashPage> {
final _formKey = GlobalKey<FormState>();
DateTime date = DateTime.now();
DateTime newDateTime;
@override
Widget build(BuildContext context) {
return Container(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Form(
key: _formKey,
child: buildTextFormField(),
),
],
),
);
}
Widget buildTextFormField() {
return Column(
children: <Widget>[
GestureDetector(
onTap: () {
showCupertinoModalPopup<void>(
context: context,
builder: (BuildContext context) {
return _buildBottomPicker(
CupertinoDatePicker(
mode: CupertinoDatePickerMode.date,
initialDateTime: date,
onDateTimeChanged: (DateTime addSelectedDate) {
setState(() {
this.newDateTime = addSelectedDate;
date = newDateTime;
});
},
),
);
},
);
},
child: _buildMenu(
<Widget>[
//Show initial date here
Text(
DateFormat.yMMMMd().format(newDateTime),
),
],
),
),
],
);
}
}
我添加了date = newDateTime;
到setState
和Text(DateFormat.yMMMMd().format(newDateTime),)
仍然是 null。 我正在考慮使用三元運算符,或者有更好的方法嗎
使用initState
方法設置newDateTime
的初始值
void initState() {
super.initState();
newDateTime = DateTime.now();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.