Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 在Flatter的第二个Route小部件中创建日历_Flutter_Dart_Widget - Fatal编程技术网

Flutter 在Flatter的第二个Route小部件中创建日历

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

我对使用flatter非常陌生,不知道如何在作为“第二路线”使用的小部件上包含日历

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,)
        ],
      ),
   ),
  }
}