如何使用多个导航器
问题内容:
我现在有一个MaterialApp
在我扑的应用程序,使得使用的Navigator
非常容易,这是伟大的。但是,我现在试图
找出如何为特定视图/小工具创建更多导航器的方法。对于例如我有在其他窗口/视图的自定义选项卡吧。我现在想
的是小部件/查看有它自己的导航堆栈。因此,目标是在我从窗口小部件/视图内导航到其他页面时,将标签栏保持在顶部。
这个问题几乎完全是这样: Flutter
中带有导航栏的永久视图,但是在该代码中,还没有MaterialApp
。嵌套MaterialApps可以得出时髦的结果,我不认为那是解决方案。
有任何想法吗?
问题答案:
您可以为每个页面创建新的导航器。作为参考,请检查CupertinoTabView
还是简单的例子:
import 'package:flutter/material.dart';
class Home extends StatelessWidget {
Navigator _getNavigator(BuildContext context) {
return new Navigator(
onGenerateRoute: (RouteSettings settings) {
return new MaterialPageRoute(builder: (context) {
return new Center(
child: new Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
new Text(settings.name),
new FlatButton(
onPressed: () =>
Navigator.pushNamed(context, "${settings.name}/next"),
child: new Text('Next'),
),
new FlatButton(
onPressed: () =>
Navigator.pop(context),
child: new Text('Back'),
),
],
),
);
});
},
);
}
@override
Widget build(BuildContext context) {
return new Scaffold(
body: new Column(
children: <Widget>[
new Expanded(
child: _getNavigator(context),
),
new Expanded(
child: _getNavigator(context),
),
],
),
);
}
}
void main() {
runApp(new MaterialApp(
home: new Home(),
));
}