未找到 MaterialLocalizations

Posted

技术标签:

【中文标题】未找到 MaterialLocalizations【英文标题】:No MaterialLocalizations found 【发布时间】:2021-03-15 19:39:55 【问题描述】:

我试图在单击 BottomNavigationBarItem 按钮时显示警报对话框, 在 CupertinoTabBar 内,但它显示 No MaterialLocalizations found。

调试控制台

这个小部件的祖先是:

CupertinoApp
    state: _CupertinoAppState#730fe
MyApp
    state: MyAppState#064cb

代码

return CupertinoTabScaffold(
  tabBar: CupertinoTabBar(
    items: [
      BottomNavigationBarItem(
        label: "",
        icon: Padding(
          padding: const EdgeInsets.only(left: 10, top: 10),
          child: Align(
            alignment: Alignment.bottomLeft,
            child: Icon(Icons.create_new_folder),
          ),
        ),
      ),
      BottomNavigationBarItem(
        label: "",
        icon: Padding(
          padding: const EdgeInsets.only(right: 10, top: 10),
          child: Align(
            alignment: Alignment.bottomRight,
            child: Icon(Icons.folder_open),
          ),
        ),
      )
    ],
    currentIndex: state,
    onTap: (int index) 
      setState(() 
        state = index;
      );
      if (index == 0) 
        showDialog(
          context: context,
          builder: (BuildContext context) => CupertinoAlertDialog(
            actions: [
              Text("Bye"),
            ],
            title: Text("New Folder"),
            content: Text("Folder name"),
          ),
        );
      
    ,
  ),

【问题讨论】:

【参考方案1】:

您可以尝试在您的主页上使用MaterialApp 包装您的整个项目。

【讨论】:

【参考方案2】:

您是否将您的代表直接传递给 CupertinoApp 的本地化代表?请试试这个:

CupertinoApp(
....
....
  localizationsDelegates: [
    DefaultMaterialLocalizations.delegate,
    DefaultCupertinoLocalizations.delegate,
    DefaultWidgetsLocalizations.delegate,
  ],
....
....
),

【讨论】:

以上是关于未找到 MaterialLocalizations的主要内容,如果未能解决你的问题,请参考以下文章

未找到配置文件:未找到未过期的配置文件

aidlux,显示命令未找到

bash: make: 未找到命令

未找到 ios 开发证书并且未找到未过期的配置文件

为啥linux中总有未找到命令?

UIPrintInteractionController - 未找到支持文档格式的属性或未找到支持的格式