首页 > 解决方案 > 移动到另一个页面时如何隐藏按钮导航栏?

问题描述

我用这样的按钮导航栏创建了一个应用程序,以保持按钮导航栏在移动到另一个页面时出现,此代码位于 layout.dart

Widget build(BuildContext context) {
    return new WillPopScope(
      onWillPop: onWillPop, // prevent click back on device
      child: new Scaffold(
        backgroundColor: background(),
        body: Stack(
          children: List<Widget>.generate(4, (int index) {
            return IgnorePointer(
              ignoring: index != _pageIndex,
              child: Opacity(
                opacity: _pageIndex == index ? 1.0 : 0.0,
                child: Navigator(
                  onGenerateRoute: (RouteSettings settings) {
                    return new MaterialPageRoute(
                      builder: (_) => _page(index),
                      settings: settings,
                    );
                  },
                ),
              ),
            );
          }),
        ),

        bottomNavigationBar: _bottomNavigationBar() // my navigation bar
      )

    );
  }

Widget _page(int index) { // get index from navigation bar
    switch (index) {
      case 0: return Home();
      case 1: return Store();
      case 2: return Message();
      case 3: return Account();
    }

    throw toast('Invalid index $index');
  }

所以,在页面Account我有一个按钮,如果点击它会显示注册页面,我需要隐藏bottomNavigationBar,我一直在尝试这样

在 main.dart

routes: <String, WidgetBuilder>{
        '/register': (context) => new Register(),
      },

然后我在按下按钮时这样称呼它,但它不起作用

Navigator.pushNamed(context, '/register');

如何解决这个问题呢?非常感谢您的帮助

标签: flutterdart

解决方案


将脚手架移到树的下方,使其出现在每个页面中,即主页、商店等。


推荐阅读