CupertinoTabView onGenerateRoute not working

Viewed 102

I use CupertinoTabView for create screen tabs view. My code example:

Main.dart

    Widget _iosApp() {
    return CupertinoApp(
      home: CupertinoTabScaffold(
        tabBar: CupertinoTabBar(
          items: NavigationItems().listTabGenerate(context),
          currentIndex: 0,
          iconSize: 27,
          activeColor: AppTheme().get("tab_bar_active"),
          inactiveColor: AppTheme().get("tab_bar_not_active"),
          backgroundColor: AppTheme().get("tab_bar_background"),
          onTap: (value) => print(value),
        ),
          tabBuilder: (BuildContext context, int index) {
            print("index $index");
            return CupertinoTabView(
              onGenerateRoute: RouteGenerator.generateRoute,
            );
          }
      ),
    );
  }

RouteGenerator.dart

class RouteGenerator {

  static const HOME_MAIN_SCREEN = "/";

  static const ACCOUNT_MAIN_SCREEN = "/account";

  static const CART_MAIN_SCREEN = "/cart";

  static const CATALOG_MAIN_SCREEN = "/catalog";

  static const FAVORITES_MAIN_SCREEN = "/favorites";

  static Route<dynamic> generateRoute(RouteSettings settings) {
    switch (settings.name) {
      case HOME_MAIN_SCREEN:
        final page = NavigationTabBar();
        return MaterialPageRoute(builder: (context) => page);
      case ACCOUNT_MAIN_SCREEN:
        final page = AccountScreen();
        return MaterialPageRoute(builder: (context) => page);
      case CATALOG_MAIN_SCREEN:
        final page = CatalogScreen();
        return MaterialPageRoute(builder: (context) => page);
      case FAVORITES_MAIN_SCREEN:
        final page = FavoritesScreen();
        return MaterialPageRoute(builder: (context) => page);
      default:
        return throw Exception('Error! No page for such value');
    }
  }
}

When I use onGenerateRoute parameter, i get looping bottom navigation widgets and there is no page widget:

enter image description here

It works well for MaterialApp. Why is this happening and what should I change?

0 Answers
Related