I have a simple code.
routes: {
'/' : (context) => KartSelectorScreen(onKartSelected: _updateKartNumber, karts: karts),
'/car_info': (context) => KartInfoScreen(currentKart: getSelectedCar(initialKartNumber)),
'/car_ride': (context) => KartRideScreen(kartNumber: initialKartNumber),
},
initialRoute: widget.initialKartNumber == null ? '/' : '/car_info',
I have a problem when I launch the application and if there is a car number, it goes to the address /car_info. But when you click the go back button, it goes back to /. At the same time, there is such a line at /car_info
void checkLongPress() {
if (isBottomRightPush && isTopRightPush) {
_resetKartNumber();
Navigator.pushNamedAndRemoveUntil(
context,
'/',
(route) => false,
);
}
}
With this code, the button just closes the application, as I need it. How to implement this in initialroute?
I am trying this and it not working
onGenerateRoute: (settings) {
WidgetBuilder builder;
switch (settings.name) {
case '/':
builder = (BuildContext _) => KartSelectorScreen(onKartSelected: _updateKartNumber, karts: karts);
break;
case '/car_info':
builder = (BuildContext _) => KartInfoScreen(currentKart: getSelectedCar(initialKartNumber));
break;
case '/car_ride':
builder = (BuildContext _) => KartRideScreen(kartNumber: initialKartNumber);
break;
default:
throw Exception('Invalid route: ${settings.name}');
}
return MaterialPageRoute(
builder: builder,
settings: settings,
maintainState: false,
);