Flutter 颤振导航器v2.0如何弹出子嵌套路线
我一直在尝试Flatter new declarative Navigator v2.0,接下来,我决定更改BookDetails屏幕中的FlatButton弹出()Flutter 颤振导航器v2.0如何弹出子嵌套路线,flutter,flutter-navigation,flutter-bottomnavigation,Flutter,Flutter Navigation,Flutter Bottomnavigation,我一直在尝试Flatter new declarative Navigator v2.0,接下来,我决定更改BookDetails屏幕中的FlatButton弹出() class BookDetailsScreen extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( body: Padding( children: [
class BookDetailsScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Padding(
children: [
FlatButton(
onPressed: () {
Navigator.of(context).pop();
},
child: Text('Back'),
),
],
}
class _AppShellState extends State<AppShell> {
InnerRouterDelegate _routerDelegate;
ChildBackButtonDispatcher _backButtonDispatcher;
@override
Widget build(BuildContext context) {
var appState = widget.appState;
_backButtonDispatcher.takePriority();
return Scaffold(
appBar: appState.selectedBook != null
? AppBar(
leading: IconButton(
icon: Icon(Icons.arrow_back),
onPressed: () => _routerDelegate.popRoute(),
),
actions: [
IconButton(
icon: Icon(Icons.more_vert),
onPressed: () => null,
)
],
)
: AppBar(),
body: Router(
routerDelegate: _routerDelegate,
backButtonDispatcher: _backButtonDispatcher,
),
到\u AppShellState中的父路由器AppBar():
class BookDetailsScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Padding(
children: [
FlatButton(
onPressed: () {
Navigator.of(context).pop();
},
child: Text('Back'),
),
],
}
class _AppShellState extends State<AppShell> {
InnerRouterDelegate _routerDelegate;
ChildBackButtonDispatcher _backButtonDispatcher;
@override
Widget build(BuildContext context) {
var appState = widget.appState;
_backButtonDispatcher.takePriority();
return Scaffold(
appBar: appState.selectedBook != null
? AppBar(
leading: IconButton(
icon: Icon(Icons.arrow_back),
onPressed: () => _routerDelegate.popRoute(),
),
actions: [
IconButton(
icon: Icon(Icons.more_vert),
onPressed: () => null,
)
],
)
: AppBar(),
body: Router(
routerDelegate: _routerDelegate,
backButtonDispatcher: _backButtonDispatcher,
),
class\u AppShellState扩展状态
我的问题是,我正在使用\u routerDelegate.popRoute()它正在工作,但我不确定这是否是正确的方法
PS:如果有人有一个使用Navigator v2.0的更复杂的示例,我是一个新手,需要知道如何分离和组织代码的最佳实践,如何添加更多路由,例如编辑和登录屏幕?处理更多的对象,如用户、书籍、作者等。当出现BookDetailsScreen时,我有一个调整来显示back按钮,这有点自然
在\u AppShellState
类中
希望这是有意义的。当出现BookDetailsScreen时,我有一个很自然的调整来显示back按钮
在\u AppShellState
类中
希望这是有意义的。谢谢Kai,这是一个更清洁的解决方案!!!谢谢Kai,更多更清洁的解决方案!!!