在此应用程序中,用户将能够添加任务,而我想提供一个选项来选择用户要保存任务的日期(以后的日期;从现在开始的一周,几天)等)。任务显示在pageView.builder
中,该initial page: DateTime.now()
根据日期显示每个页面(例如:showDatePicker
)。设置日期后,用户应该能够跳至他们在showDatePicker
中选择的特定日期,并且还可以在所选页面中显示添加的任务(也将根据{ {1}})。控制器_daysPageController.jumpToDay
是允许用户跳至所需页面的控制器。
在此行中,以DateTime
格式返回用户选择的日期:
DateTime selecteddate = DateTime.now();
Future<Null> _selectDate() async {
final DateTime picked = await showDatePicker(
context: context,
initialDate: selecteddate,
firstDate: DateTime(2015, 8),
lastDate: DateTime(2101));
if (picked != null && picked != selecteddate)
setState(() {
selecteddate = picked;
});
_daysPageController.jumpToDay(selecteddate);
}
DateTime
selecteddate
成功返回了用户选择的日期,但是当我在_daysPageController
中传递它时,我得到了错误;
The method 'jumpToDay' was called on null.
我可以对如何通过selecteddate
提出建议,以便_daysPageController.jumpToDay()
仅在设置了selectddate
之后执行吗?
我已经使用此存储库实现了pageView.builder
:
https://github.com/ZedTheLed/calendar_views
其中还包含PageController
,用于跳转到特定页面。
答案 0 :(得分:1)
您可以从DateTime对象获取日期
DateTime selecteddate = DateTime.now();
Future<void> _selectDate() async {
final DateTime picked = await showDatePicker(
context: context,
initialDate: selecteddate,
firstDate: DateTime(2015, 8),
lastDate: DateTime(2101));
if (picked != null && picked != selecteddate){
setState(() {
selecteddate = picked;
});
if(_daysPageController != null){
_daysPageController.jumpToDay(selecteddate);
}
}
}