это потому, что вы передаете until
равное Null, потому что ModalRoute.withName(RoomScreen.id)
не может определять и передавать Null автоматически
вы можете передать null в untilPage, и он очистит стек
вы неправильно определяете маршруты,
в документах флаттера говорится, что вы должны передать карту для маршрута свойство
MaterialApp(
routes: {
// When navigating to the "/" route, build the FirstScreen widget.
'/': (context) => FirstScreen(),
// When navigating to the "/second" route, build the SecondScreen widget.
'/second': (context) => SecondScreen(),
},
);
, и ваши маршруты должны быть такими:
routes: {
'/welcomeScreen': (context) => WelcomeScreen(),
...
'/roomScreen': (context) => RoomScreen(),
...
'/paintingScreen': (context) => PaintingScreen(),
},
ваш навигатор должен быть таким:
Navigator.pushAndRemoveUntil(
context,
MaterialPageRoute(builder: (context) {
return PaintingScreen();
}),
ModalRoute.withName('/roomScreen'),
);
и вы не может передавать свойства класса с именованными маршрутами