Я пытаюсь запустить новый экран внутри onTap, но я получаю следующую ошибку:
Операция Navigator запрашивается с контекстом, который не включает навигатор.
Код, который я использую для навигации:
onTap: () { Navigator.of(context).pushNamed('/settings'); },
Я установил маршрут в своем приложении следующим образом:
routes: <String, WidgetBuilder>{
'/settings': (BuildContext context) => new SettingsPage(),
},
Я попытался скопировать код, используя приложение образца запасов. Я просмотрел документацию Navigator и Route и не могу понять, как можно использовать контекст для включения Navigator. context
, используемый в onTap, ссылается на параметр, переданный в метод сборки:
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
SettingsPage - это класс следующим образом:
class SettingsPage extends Navigator {
Widget buildAppBar(BuildContext context) {
return new AppBar(
title: const Text('Settings')
);
}
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: buildAppBar(context),
);
}
}