Flutter修改日历locale为韩语时出现No MaterialLocalizations错误如何修复
修复方案
90%以上的同类报错都是因为语言码写错导致的,优先检查这一项
1. 修正Locale参数
你当前写的Locale('kr','')不符合规范,韩语的ISO 639-1标准语言码是ko,kr是韩国的国家码,正确写法为Locale('ko', 'KR')。
2. 补充MaterialApp的supportedLocales配置
你当前只配置了localizationsDelegates,没有声明APP支持的语言列表,Flutter无法匹配到对应的本地化资源,需要在MaterialApp中新增supportedLocales字段:
Widget build(BuildContext context) { return MaterialApp( localizationsDelegates: [ GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate, GlobalCupertinoLocalizations.delegate, ], // 新增支持的语言列表 supportedLocales: [ Locale('ko', 'KR'), // 韩语 // 如需支持其他语言可以继续往下加 ], home: buildHomePage(), ); }
3. 确认依赖配置正确
检查pubspec.yaml文件中是否已经添加flutter_localizations依赖,版本必须和当前使用的Flutter SDK匹配:
dependencies: flutter: sdk: flutter flutter_localizations: sdk: flutter
配置完成后执行flutter pub get,然后完全重启项目再测试。
4. 单页面日期选择器适配(不需要全局改语言可选)
如果不需要把整个APP的语言改成韩语,只想让日期选择器显示韩语,可以不用改全局MaterialApp配置,直接在showDatePicker方法外包裹Localizations组件覆盖当前上下文的本地化设置即可。
内容的提问来源于stack exchange,提问作者Malone
相关产品推荐
相关产品推荐

