Flutter在使用go_router时将动作图标添加到AppBar

x759pob2  于 2023-04-07  发布在  Flutter
关注(0)|答案(2)|浏览(90)

我想添加操作图标到我的AppBar中,如此Flutter example所示
但是我使用go_flutter,在MaterialApp.router构造函数中看不到任何允许插入图标部件的属性。
这是我到目前为止的代码。我如何从这里添加动作图标?

class MyApp extends StatelessWidget {
    const MyApp({super.key});

    @override
    Widget build(BuildContext context) {
        return MaterialApp.router(
            title: 'My App',
            routerConfig: _router,
            debugShowCheckedModeBanner: false,
        );  
    }   
}

final GoRouter _router = GoRouter(routes: [
    GoRoute(path: '/', builder: ((context, state) => Loading())),
    GoRoute(name: 'error', path: '/error/:message/:statusCode', builder: (context, state) => CheckError(
        message: state.params['message']!,
        statusCode: state.params['statusCode']!
    )),
    GoRoute(name: 'home', path: '/home', builder: (context, state) {
            Map data = state.extra as Map;
            return Home(data: data);
        },
    ),
]);
6fe3ivhb

6fe3ivhb1#

您需要使用push而不是goNamed

context.push('home', extra: data); // or can be pushNamed
r6hnlfcb

r6hnlfcb2#

@Duddy67回答您的评论。并扩展@Yeasin Sheikh的回答。
我假设您希望在新屏幕的appBar中有<-按钮。

  • 您需要使用context.push()将页面添加到导航堆栈。
  • 如果你使用context.go(),你只是替换页面,所以没有屏幕可以返回。
    **注意:需要在scaffold中添加appBar: AppBar(title:Text("Home Page")),才能显示<-。( 重点是调用AppBar示例,而不是设置title。

相关问题