flutter 持续底部导航栏,如何在底部导航栏屏幕中不包含的另一个页面中使用它?

bq3bfh9z  于 2023-03-09  发布在  Flutter
关注(0)|答案(1)|浏览(133)

我正在使用persistent_bottom_nav_bar 4.0.2实现底部导航栏虽然出了应用程序。它实际上与底部导航栏项目和相关屏幕工作良好。我有任何方法,我可以在另一个页面使用此导航栏,而不是在底部栏中提到的屏幕相关。

@override
   Widget build(BuildContext context) {
     return PersistentTabView(
       context,
       controller: _controller,
       screens: _buildScreens(),
       items: _navBarsItems(),,
       navBarStyle: NavBarStyle.style3, // Choose the nav bar style with this property.
    );
  }

  List<Widget> _buildScreens() {
    return [
      DashboardScreenV2(),
      Menu()
    ];
  }
  List<PersistentBottomNavBarItem> _navBarsItems() {
    return [
      PersistentBottomNavBarItem(
         icon: Icon(CupertinoIcons.home),
      ),
      PersistentBottomNavBarItem(
         icon: Icon(CupertinoIcons.search),
      ),
   ];
  }

在上面的代码中,当用户点击主页和搜索时,它工作得很好,想象一下,如果有一个名为配置文件的页面,我怎么能在那个页面中使用这个底部栏而不将其添加到底部栏项目。

0dxa2lsx

0dxa2lsx1#

您可能已经发现了,但有人会需要此属性。您可以按如下方式使用routeAndNavigatorSettings属性:

PersistentBottomNavBarItem(
    icon: Icon(CupertinoIcons.cube_box_fill),
    title: ("Achats"),
    routeAndNavigatorSettings: RouteAndNavigatorSettings(
      onGenerateRoute: (RouteSettings settings) {
        WidgetBuilder builder;
        // Manage your route names here
        switch (settings.name) {
          case '/profile':
            builder = (BuildContext context) => Profile();
            break;
          default:
            throw Exception('Invalid route: ${settings.name}');
        }
        return MaterialPageRoute(
          builder: builder,
          settings: settings,
        );
      },
    ),
    activeColorPrimary: appMainColor(),
    inactiveColorPrimary: appMainColor(),
  )

相关问题