Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.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 颤振web url路由_Flutter_Flutter Web - Fatal编程技术网

Flutter 颤振web url路由

Flutter 颤振web url路由,flutter,flutter-web,Flutter,Flutter Web,我在firebase主机上部署了一个Flatter web应用程序,我想实现这样的路由,当您单击某个事件时,它不会将您发送到新页面,而只是更改url。我之所以想这样做,是因为我有侧边栏ui,每次单击新图标时,它都会使用getx包更改子小部件 到目前为止,应用程序中的路由如下所示: class RouteNames { static const String index = '/index'; static const String controlPanel = '/control_pan

我在firebase主机上部署了一个Flatter web应用程序,我想实现这样的路由,当您单击某个事件时,它不会将您发送到新页面,而只是更改url。我之所以想这样做,是因为我有侧边栏ui,每次单击新图标时,它都会使用getx包更改子小部件

到目前为止,应用程序中的路由如下所示:

class RouteNames {
  static const String index = '/index';
  static const String controlPanel = '/control_panel';
  static const String pickRole = '/pick_role';
  static const String companyRegistration = '/company_registration';
}
我使用Navigator.pushNamed进行转换。所以,我的问题是-有没有任何方法可以在当前的实现中实现所需的行为

class RouteGenerator {
  static Route<dynamic> generateRoute(RouteSettings settings) {
    switch (settings.name) {
      case RouteNames.controlPanel:
        return GeneratePageRoute(
            widget: UserDashboard(), routeName: settings.name);
      case RouteNames.index:
        return GeneratePageRoute(widget: FrontPage(), routeName: settings.name);
      case RouteNames.pickRole:
        return GeneratePageRoute(widget: PickRole(), routeName: settings.name);
      default:
        return GeneratePageRoute(
            widget: DashboardSwitcher(
              stream: firebaseAuth.userChanges(),
            ),
            routeName: settings.name);
    }
  }
}
class GeneratePageRoute extends PageRouteBuilder {
  final Widget widget;
  final String routeName;
  GeneratePageRoute({this.widget, this.routeName})
      : super(
          settings: RouteSettings(name: routeName),
          pageBuilder: (BuildContext context, Animation<double> animation,
              Animation<double> secondaryAnimation) {
            return widget;
          },
          transitionDuration: Duration(seconds: 0),
        );
}
class RouteStartingPoint extends StatelessWidget {
  final Widget child;
  const RouteStartingPoint({Key key, this.child}) : super(key: key);
  @override
  Widget build(BuildContext context) {
    return Container(
      child: child,
    );
  }
}
class MaterialAppInit extends StatelessWidget {
  @override
  Widget build(BuildContext context) => GetMaterialApp(
        builder: (context, child) => RouteStartingPoint(
          child: child,
        ),
        onGenerateRoute: RouteGenerator.generateRoute,
        initialRoute: RouteNames.index,
      );
}