Flutter 颤振web url路由
我在firebase主机上部署了一个Flatter web应用程序,我想实现这样的路由,当您单击某个事件时,它不会将您发送到新页面,而只是更改url。我之所以想这样做,是因为我有侧边栏ui,每次单击新图标时,它都会使用getx包更改子小部件 到目前为止,应用程序中的路由如下所示: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
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,
);
}