Dart 在颤振中导航的其他方式有哪些

Dart 在颤振中导航的其他方式有哪些,dart,flutter,dart-pub,Dart,Flutter,Dart Pub,我正在试验颤振,我发现在屏幕之间导航颤振很困难,还有其他方法吗 class FirstScreen extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('First Screen'), ), body: Center( child: RaisedButton( child:

我正在试验颤振,我发现在屏幕之间导航颤振很困难,还有其他方法吗

class FirstScreen extends StatelessWidget {
@override
 Widget build(BuildContext context) {
return Scaffold(
  appBar: AppBar(
    title: Text('First Screen'),
  ),
  body: Center(
    child: RaisedButton(
      child: Text('Launch screen'),
      onPressed: () {
        // Navigate to second screen when tapped!
      },
    ),
  ),
);
}
}

您可以查看名为fluro的插件,该插件还具有一些高级功能
从一个屏幕导航到另一个屏幕基本上有两种方法

  • 如果屏幕不多,可以使用下面的代码

    已按下:(){ 导航器。推( 上下文 MaterialPage路由(生成器:(上下文)=>SecondScreen()), ); }

  • 如果您有多个屏幕,您可以使用命名路线从一个地方管理导航

  • 像这样在初始屏幕中添加所有路由

    class MyApp extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          initialRoute: '/',
          routes: {
            '/': (context) => Screen0(),
            '/first': (context) => Screen1(),
            '/second': (context) => Screen2(),
          },
        );
      }
    }
    
    然后只需写下你们违抗的路线名称,你们就可以走了

    class Screen0 extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(
            backgroundColor: Colors.purple,
            title: Text('Screen 0'),
          ),
          body: Center(
            child: Column(
              children: <Widget>[
                RaisedButton(
                  color: Colors.red,
                  child: Text('Go To Screen 1'),
                  onPressed: () {
                    //Navigate to Screen 1
                    Navigator.pushNamed(context, '/first');
                  },
                ),
                RaisedButton(
                  color: Colors.blue,
                  child: Text('Go To Screen 2'),
                  onPressed: () {
                    //Navigate to Screen 2
                    Navigator.pushNamed(context, '/second');
                  },
                ),
              ],
            ),
          ),
        );
      }
    }
    
    class Screen0扩展了无状态小部件{
    @凌驾
    小部件构建(构建上下文){
    返回脚手架(
    appBar:appBar(
    背景颜色:Colors.purple,
    标题:文本(“屏幕0”),
    ),
    正文:中(
    子:列(
    儿童:[
    升起的按钮(
    颜色:颜色,红色,
    子项:文本(“转到屏幕1”),
    已按下:(){
    //导航到屏幕1
    pushNamed(上下文“/first”);
    },
    ),
    升起的按钮(
    颜色:颜色,蓝色,
    子项:文本(“转到屏幕2”),
    已按下:(){
    //导航到屏幕2
    Navigator.pushNamed(上下文“/second”);
    },
    ),
    ],
    ),
    ),
    );
    }
    }
    
    他们不是故意刁难;-)导航只是一个复杂的话题。