繁体   English   中英

在 Flutter 中使用 BottomNavBar 向后滑动手势

[英]Swipe back gesture with BottomNavBar in Flutter

我正在使用底部导航栏,我需要推送带有底部导航栏的视图才能持久。

这是主页:

MaterialApp(
        theme: ThemeData(
            pageTransitionsTheme: PageTransitionsTheme(builders: {
          TargetPlatform.android: CupertinoPageTransitionsBuilder(),
          TargetPlatform.iOS: CupertinoPageTransitionsBuilder(),
        })),
        home: Scaffold(
            body: IndexedStack(
              index: _pageIndex,
              children: const <Widget>[
                HomeView(),
                VideosSectionsView(),
                FavoritesView()
              ],
            ),
            bottomNavigationBar: Column(
              mainAxisSize: MainAxisSize.min,
              children: [
                showBottomPlayer ? bottomPlayer(context) : Row(),
                const SizedBox(height: 0),
                bottomNavigationBar()
              ],
            )));

问题是,当我将一个视图从 HomeView 推送到 SecondView,然后再次推送到 ThirdView 时,ThirdView 的向后滑动手势(在屏幕的左边缘)将我送回 HomeView,但我希望它将我送回 SecondView (所以只弹出一个视图,而不是所有的堆栈)你知道实现这个吗?

为此,我使用 CupertinoPageRoute:

Navigator.of(context, rootNavigator: false).push(
    CupertinoPageRoute<bool>(
       fullscreenDialog: false, 
       builder: (BuildContext context) => SecondView()
    )
);

这很奇怪,因为如果我将“ rootNavigator ”设置为 true,它可以正常工作,我只能弹出堆栈的最后一个视图,但底部导航栏不再保留在导航中!

所以我必须在良好的向后滑动手势或持久的导航栏之间做出选择......

以编程方式返回没有问题:

Navigator.of(context).pop(true);

所以我想用滑动手势做同样的事情,谢谢大家

暂无
暂无

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

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