修改SyncFusion Flutter日历语言遇报错:GlobalMaterialLocalizations未定义
解决SyncFusion Flutter日历本地化时GlobalMaterialLocalizations未定义的问题
问题原因
GlobalMaterialLocalizations 和 GlobalWidgetsLocalizations 并非来自SyncFusion的本地化包,而是Flutter官方提供的flutter_localizations库,你缺少了对应的依赖与导入。
解决步骤
1. 添加flutter_localizations依赖
打开项目根目录下的pubspec.yaml,在dependencies区块中添加flutter_localizations依赖:
dependencies: flutter: sdk: flutter flutter_localizations: sdk: flutter syncfusion_flutter_calendar: ^你的版本号 syncfusion_localizations: ^你的版本号
添加后执行flutter pub get拉取依赖。
2. 导入flutter_localizations包
在你的dart文件顶部,补充以下导入语句:
import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:syncfusion_localizations/syncfusion_localizations.dart';
3. 保留现有配置
你的MaterialApp中的本地化配置无需修改,保持现有代码即可:
child: MaterialApp( localizationsDelegates: [ GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate, SfGlobalLocalizations.delegate, ], supportedLocales: [ const Locale('en'), const Locale('zh'), const Locale('he'), const Locale('ru'), const Locale('fr', 'BE'), const Locale('fr', 'CA'), const Locale('ja'), const Locale('de'), const Locale('hi'), const Locale('ar'), ], locale: const Locale('zh'), // 其他配置... )
完成以上步骤后,错误会消失,SyncFusion日历也能正常应用中文本地化设置。
内容的提问来源于stack exchange,提问作者mvasco
相关产品推荐
相关产品推荐

