Flutter 在Flatter的第二个Route小部件中创建日历
我对使用flatter非常陌生,不知道如何在作为“第二路线”使用的小部件上包含日历Flutter 在Flatter的第二个Route小部件中创建日历,flutter,dart,widget,Flutter,Dart,Widget,我对使用flatter非常陌生,不知道如何在作为“第二路线”使用的小部件上包含日历 class FirstRoute extends StatefulWidget { FirstRoute({Key key, this.title}) : super(key: key); final String title; @override _FirstRoute createState() => _FirstRoute(); } class _FirstRoute exten
class FirstRoute extends StatefulWidget {
FirstRoute({Key key, this.title}) : super(key: key);
final String title;
@override
_FirstRoute createState() => _FirstRoute();
}
class _FirstRoute extends State<FirstRoute> {
CalendarController _controller;
@override
void initState(){
super.initState();
_controller = CalendarController();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Project'),
),
body: new Center(
child: new ListView(
children: <Widget>[
TableCalendar(calendarController: _controller,)
...
有没有办法在第二条路线中使用
表格日历(calendarController:\u controller,)
?我试图将日历代码的一部分添加到第二个路径中,但这不起作用,因为您不能在小部件中使用initState()
。谢谢大家! 如果要在SecondRoute页面中使用initState,它必须扩展StatefulWidget,如下所示
class SecondRoute extends StatefulWidget {
@override
_SecondRoute createState() => _SecondRoute();
}
class _SecondRoute extends State<SecondRoute> {
CalendarController _controller;
@override
void initState(){
super.initState();
_controller = CalendarController();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text("Second Route"), ),
body: ListView(
children: [
TableCalendar(calendarController: _controller,)
],
),
),
}
}
class SecondRoute扩展StatefulWidget{
@凌驾
_SecondRoute createState()=>\u SecondRoute();
}
类_SecondRoute扩展状态{
日历控制器\u控制器;
@凌驾
void initState(){
super.initState();
_控制器=日历控制器();
}
@凌驾
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(标题:文本(“第二条路线”),),
正文:ListView(
儿童:[
TableCalendar(calendarController:\u控制器,)
],
),
),
}
}
< /代码>如果要保持超出一个部件的状态,如<<代码> CalendarController < /> >,请考虑处理小工具外的状态。看一看,了解更多关于当地州的替代方案。非常感谢,太好了!
...
ListTile(
title: Text('Calendar'),
onTap: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => SecondRoute())
);
},
),
...
class SecondRoute extends StatefulWidget {
@override
_SecondRoute createState() => _SecondRoute();
}
class _SecondRoute extends State<SecondRoute> {
CalendarController _controller;
@override
void initState(){
super.initState();
_controller = CalendarController();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text("Second Route"), ),
body: ListView(
children: [
TableCalendar(calendarController: _controller,)
],
),
),
}
}