我试图在 onTap 中启动一个新屏幕,但是我得到了以下错误:
请求的导航器操作,其上下文不包括 领航员。
我用来导航的代码是:
onTap: () { Navigator.of(context).pushNamed('/settings'); },
我已经在我的应用程序中设置了如下路线:
routes: <String, WidgetBuilder>{
'/settings': (BuildContext context) => new SettingsPage(),
},
我尝试使用股票示例应用程序复制代码。我已经查看了 Navigator 和 Route 文档,但不知道如何使上下文包含 Navigator。OnTap 中使用的 context
是从传递到构建方法中的参数引用的:
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),
);
}
}