Flutter 颤振i18n插件无法自动更改语言

Flutter 颤振i18n插件无法自动更改语言,flutter,internationalization,Flutter,Internationalization,安装后,我添加了3个language.arb文件。当我添加LocalResolutionCallback:时,我可以获得此语言页面。但如果没有LocalResolutionCallback:则始终使用英语。当我更改设备语言时,如何使应用程序自动更改语言 lib/main.dart: ... import 'package:hctodo/generated/i18n.dart'; import 'app.dart'; import 'package:flutter_localizations/fl

安装后,我添加了3个language.arb文件。当我添加
LocalResolutionCallback:
时,我可以获得此语言页面。但如果没有
LocalResolutionCallback:
则始终使用英语。当我更改设备语言时,如何使应用程序自动更改语言

lib/main.dart:

...
import 'package:hctodo/generated/i18n.dart';
import 'app.dart';
import 'package:flutter_localizations/flutter_localizations.dart';

void main() {
  ...
  return runApp(CupertinoApp(
      localizationsDelegates: [
        S.delegate,
        GlobalCupertinoLocalizations.delegate,
        GlobalWidgetsLocalizations.delegate,
        GlobalMaterialLocalizations.delegate
      ],
      supportedLocales: S.delegate.supportedLocales,
//      localeResolutionCallback: S.delegate.resolution(fallback: new Locale("ja", "JP")),
      home: MyApp()));
}
试试这个, 首先声明支持的区域设置:

import 'dart:ui' as ui;   
class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      supportedLocales: [
        const Locale('en'), // English
        const Locale('he'), // Hebrew
        const Locale('de'), // Hebrew
        // ... other locales the app supports
      ],
      home: MyHomePage(title: ''),
    );
  }
}
然后
var\u sysLng=ui.window.locale.languageCode

在您的另一个文件中,它返回null:
[VERBOSE-2:ui\u dart\u state.cc(148)]未处理的异常:NoSuchMethodError:对null调用了getter“languageCode”。接收方:null尝试呼叫:languageCode