繁体   English   中英

使用 MaterialApp Builder 跨屏有一个通用的脚手架,但是导航的 AppBar 中不显示返回按钮

[英]Using MaterialApp Builder to have a common scaffold across screens, but back button is not displayed in AppBar on Navigation

我正在尝试使用 MaterialApp Builder 在屏幕上拥有一个通用的脚手架,但导航的 AppBar 中不显示后退按钮。 我对 Flutter 很陌生。 任何了解原因/解决问题的方向都会有所帮助。

我正在使用 onGenerateRoute 来设置路线。

材料应用小部件

class MyApp extends StatefulWidget {
  // This widget is the root of your application.
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  final AppRouter _appRouter = AppRouter();

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: APP_TITLE,
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      builder: (context, child) => Scaffold(
        appBar: AppBar(
          title: Text(APP_TITLE),
        ),
        body: child,
      ),
      onGenerateRoute: _appRouter.onGenerateRoute,
    );
  }

  @override
  void dispose() {
    _appRouter.dispose();
    super.dispose();
  }
}

主屏幕


class _HomeScreenState extends State<HomeScreen> {
  int _counter = 0;

  @override
  Widget build(BuildContext context) {
    return Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          crossAxisAlignment: CrossAxisAlignment.center,
          children: <Widget>[
           Text(
              'My Home Screen',
            ),
            ElevatedButton(
              child: Text("Navigate Back Here"),
              onPressed: () {
                Navigator.of(context).pushNamed('/');
              },
            ),
          ],
        ),
      );
  }
}

我认为你不能推回家路线并有一个后退按钮你可以使用: Navigator.of(context).push(MaterialPageRoute(builder:(_)=>SecondScreen()));

flutter 中默认为主路由定义了“/”路由,因此,如果您想定义命名路由,请使用其他内容,例如:“SecondScreen/”作为您的第二个屏幕小部件

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM