如何在运行时更改flutter应用程序的区域设置?

ogq8wdun  于 2022-12-24  发布在  Flutter
关注(0)|答案(1)|浏览(169)

我在用

import 'package:flutter_localizations/flutter_localizations.dart'; //For Cupertino stuff
import 'package:localization/localization.dart'; //For actual translations
import 'package:intl/intl.dart'; //For locales

来本地化我的flutter应用程序。它出现在手机设置的语言,但我想添加一种方法来改变应用程序内的语言...我尝试使用LocalJsonLocalization.delegate.load(locale(lang))从一个按钮(目前;我想使用一个下拉列表框,但它似乎还不是空值安全的),但实际上并没有做出改变(我看到调试日志,它说它不能加载JSON语言文件)...

xnifntxz

xnifntxz1#

尝试将您的MaterialApp Package 在BlocBuilder中。

return BlocBuilder<MainBloc, MainState>(
  builder: (context, mainState) {
    return MaterialApp(
      title: 'MyApp',
      locale: mainState.locale,
      supportedLocales: L10n.all,
      localizationsDelegates: [
        AppLocalizations.delegate,
        GlobalMaterialLocalizations.delegate,
        GlobalCupertinoLocalizations.delegate,
        GlobalWidgetsLocalizations.delegate,
      ],
    );

然后从您的按钮调用Bloc Event,它将更改localestate
别忘了加上:

WidgetsFlutterBinding.ensureInitialized();

main()函数的开头
使用提供程序时也应该可以正常工作。

相关问题