2

I am using the modal_bottom_sheet library to display the cupertino modals. But when opening the modal screen on a page with cupertinoTabView, it does not hide the navigation bar(pic1). If it is displayed with the flag useRootNavigator: true, it is not displayed as I need it (pic2).

this is how i call ModalBottomSheet

onTap: () {
          showCupertinoModalBottomSheet<Widget>(
            useRootNavigator: true,
            expand: true,
            context: context,
            backgroundColor: Colors.transparent,
            builder: (context) => SupportHelpster(),
          );
        },

code bottomNavigator

tabBuilder: (context, index) => CupertinoTabView(
      onGenerateRoute: (_) {
        switch (index) {
          case 0:
            return MaterialWithModalsPageRoute<Widget>(
              builder: (_) => const HomeScreen(),
            );
          case 1:
            return MaterialWithModalsPageRoute<Widget>(
              builder: (_) => const DocumentScreen(),
            );
          case 2:
            return MaterialWithModalsPageRoute<Widget>(
              builder: (_) => const ProfileScreen(),
            );
        }
      },
    ),

and onGenerateRoute code

  Route? onGenerateRoute(RouteSettings settings) {
switch (settings.name) {
  case Screens.main:
    return CupertinoPageRoute<Widget>(
      builder: (_) => const CupertinoTabScreen(),
    );
  case Screens.home:
    return MaterialWithModalsPageRoute<Widget>(
      builder: (_) => const HomeScreen(),
    );
  case Screens.document:
    return MaterialWithModalsPageRoute<Widget>(
      builder: (_) => const DocumentScreen(),
    );
  case Screens.profile:
    return MaterialWithModalsPageRoute<Widget>(
      builder: (_) => const ProfileScreen(),
    );
  case Screens.details:
    return MaterialWithModalsPageRoute<Widget>(
      builder: (_) => const DetailsScreen(),
    );
  case Screens.hospital:
    return MaterialWithModalsPageRoute<Widget>(
      builder: (_) => const HospitalScreen(),
    );
  case Screens.profileSettings:
    return MaterialWithModalsPageRoute<Widget>(
      builder: (_) => const ProfileSettings(),
    );
  default:
    return CupertinoPageRoute<Widget>(
      builder: (_) => const NotFoundScreen(),
    );
}

pic1

pic2

Evgeniy
  • 21
  • 4

0 Answers0