【发布时间】:2020-09-29 08:32:47
【问题描述】:
我按照here 的建议使用自定义导航器实现了持久底栏。
class _MainScreenState extends State<MainScreen> {
final _navigatorKey = GlobalKey<NavigatorState>();
// ...
@override
Widget build(BuildContext context) {
return Scaffold(
body: Navigator(
key: _navigatorKey,
initialRoute: '/',
onGenerateRoute: (RouteSettings settings) {
WidgetBuilder builder;
// Manage your route names here
switch (settings.name) {
case '/':
builder = (BuildContext context) => HomePage();
break;
case '/page1':
builder = (BuildContext context) => Page1();
break;
case '/page2':
builder = (BuildContext context) => Page2();
break;
default:
throw Exception('Invalid route: ${settings.name}');
}
// You can also return a PageRouteBuilder and
// define custom transitions between pages
return MaterialPageRoute(
builder: builder,
settings: settings,
);
},
),
bottomNavigationBar: _yourBottomNavigationBar,
);
}
}
现在,如果我在 HomePage 上有带有需要导航到 Page2 的按钮的子小部件,我将如何从 HomePage 内部实现这一点 - 因为?
【问题讨论】:
-
像任何其他
Navigator:Navigator.of(context).pushNamed('/page2') -
是的,有效.. 我不知道为什么我认为我必须通过
_navigatorKey。谢谢! -
当然,欢迎您
标签: flutter