3

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

调试控制台

这个小部件的祖先是:

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"),
          ),
        );
      }
    },
  ),
4

2 回答 2

3

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

CupertinoApp(
....
....
  localizationsDelegates: [
    DefaultMaterialLocalizations.delegate,
    DefaultCupertinoLocalizations.delegate,
    DefaultWidgetsLocalizations.delegate,
  ],
....
....
),
于 2020-12-03T18:36:21.900 回答
0

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

于 2020-12-03T18:30:12.963 回答