在此应用程序中,用户将能够添加任务并将其显示在PageView.builder
. 用户还可以通过PageView.builder
向左或向右滑动来滚动浏览。综合浏览量映射到日期(例如:当前页面映射到今天的日期,下一页映射到明天的日期等)。我还想实现一个跳转功能,让用户通过在showDatepicker
小部件上指定日期来移动到新页面。
PageView.builder
是通过使用这个项目来实现的。该项目还具有跳转到页面功能:https ://github.com/ZedTheLed/calendar_views
在showDatepicker
下面的方法中实现。通过单击 a 调用它Raisedbutton
:
_selectDate() async {
final DateTime picker =await showDatePicker(
context: context,
initialDate: DateTime.now(),
firstDate: DateTime(2010),
lastDate: DateTime(2040)
);
if (picker != null) {
print(picker);
return _daysPageController.jumpToDay(picker); // this method jumps the user to a selected date
// Navigator.pop(context);
// print(selectedDate);
// await runJump(selectedDate);
// return selectedDate;
}
}
当用户单击某个日期时,该变量DateTime picker
成功返回打印语句中用户选择的日期。但是当我将此值传递给 jumptopage 方法时,它给出了他的错误:The method 'jumpToDay' was called on null.
在下面PageView.builder
的代码中实现:
final List<DateTime> days;
Scaffold(
floatingActionButton: new RaisedButton(
child: new Text("Jump To Today"),
onPressed: () {
_selectDate();
},
),
body: new Column(
children: widget.days.map(((day) => Container(
constraints: new BoxConstraints(
maxHeight: MediaQuery.of(context).size.height * 1.00,
maxWidth: MediaQuery.of(context).size.width * 1.00
),
child: Starting_screen(_makeTextString(day)), //this screen displays the tasks added by the user
)
),
).toList()
),
);
该方法_makeTextString
只是修改一个DateTime
值并以所需的格式返回它。
我可以就如何处理此错误提出建议吗?
完整项目可在此处获得:https ://bitbucket.org/NotAnurag/todolist_restarted/src/master/