【问题标题】:Flutter, I get an error when using CupertinoTabScaffoldFlutter,使用 CupertinoTabScaffold 时出现错误
【发布时间】:2022-12-04 09:22:56
【问题描述】:
CupertinoTabScaffold(
      tabBar: CupertinoTabBar(
        items: const <BottomNavigationBarItem>[
          BottomNavigationBarItem(
            icon: Icon(Icons.home),
            label: '',
          ),
          BottomNavigationBarItem(
            icon: Icon(Icons.favorite),
            label: '',
          ),
          BottomNavigationBarItem(
            icon: Icon(Icons.shopping_cart),
            label: '',
          ),
        ],
      ),
      tabBuilder: (context, index) {
         switch (index) {
          case 0:
            return CupertinoTabView(builder: (context) {
              return const CupertinoPageScaffold(
                child: Categories(), );
            });
           case 1:
            return CupertinoTabView(builder: (context) {
              return const CupertinoPageScaffold(
                child: FavPage(), );
            }); 
            case 2:
            return CupertinoTabView(builder: (context) {
              return const CupertinoPageScaffold(
                child: Cart(), );
            }); 
            default:
            return CupertinoTabView(builder: (context) {
              return const CupertinoPageScaffold(
                child: Categories(), );
            });             
        }
      }, 
    ); 

错误信息:

在 the_CupertinoTabViewState 中找不到路由 RouteSettings("/categoryDe​​tails", GzE5usW4fApu38pjA) 的生成器。

当我单击“类别”屏幕中的类别时,它必须导航到“类别详细信息”屏幕

【问题讨论】:

  • 您是否在 MaterialApp 的路由列表中定义了这个“/categoryDe​​tails”路由?
  • return MaterialApp( title: 'Flutter Demo', initialRoute: '/', routes: { '/': (context) =&gt; const SplashScreen(), '/categories': (context) =&gt; const CustomBottomNB(), '/categoryDetails' :(context) =&gt; const CategoryDetails(), '/productdetail': (context) =&gt; const Product(), }, );
  • 这就是我定义 /categoryDe​​tails 的方式
  • 您是如何导航到 /category Details 的?
  • 当我在“类别”屏幕时,我可以导航到“类别详细信息”。

标签: flutter dart flutter-bottomnavigation


【解决方案1】:

这应该解决它

CupertinoTabScaffold(
      tabBar: CupertinoTabBar(
        items: const <BottomNavigationBarItem>[
          BottomNavigationBarItem(
            icon: Icon(Icons.home),
            label: '',
          ),
          BottomNavigationBarItem(
            icon: Icon(Icons.favorite),
            label: '',
          ),
          BottomNavigationBarItem(
            icon: Icon(Icons.shopping_cart),
            label: '',
          ),
        ],
      ),
      tabBuilder: (BuildContext context, int index) {
        assert(index >= 0 && index <= 2);
         switch (index) {
          case 0:
            return CupertinoTabView(
              builder: (BuildContext context) => Categories(),,
            );
            break;
          
           case 1:
            return CupertinoTabView(
              builder: (BuildContext context) => FavPage(),
            );
            break;
          
            case 2:
            return CupertinoTabView(
              builder: (BuildContext context) => Cart(),
            );
            break;
          }
             return CupertinoTabView(
          builder: (BuildContext context) => Categories(),
        );             
        }
      }, 
    ); 

【讨论】:

  • 谢谢你的努力,抱歉同样的错误。
【解决方案2】:

用于路线或者onGenerateRoutes根据您在 CuptinoTabBar 的 TabViewState 中的要求。

像这样的东西......

return CupertinoTabView(
      routes: appRoutes,
//or
      onGenerateRoutes: ...,

【讨论】:

    猜你喜欢
    • 2022-12-12
    • 1970-01-01
    • 2022-01-19
    • 2021-10-01
    • 1970-01-01
    • 2023-02-07
    • 2023-02-01
    • 1970-01-01
    • 2023-01-23
    相关资源
    最近更新 更多