如何解决杀死或销毁应用程序后,Flutter Localization 不稳定
我已使用 Get 包进行本地化,并且运行良好。但是如果我销毁(杀死,关闭)该应用程序并再次打开,则默认情况下设置本地语言时间。
示例:- 打开应用程序-> 语言(英语)-> 更改语言(阿拉伯语)-> 工作-> 关闭(销毁,杀死)应用程序-> 再次打开-> 默认设置语言(英语)。
以上是流程。
GetMaterialApp(
locale: Get.locale,translations: LLLanguages(),navigatorKey:Get.key,debugShowCheckedModeBanner:false,theme:LLTheme.light,darkTheme: LLTheme.dark,themeMode: ThemeService().theme,home:LLSplashScreen(),)
Get.updateLocale(Locale('ar','DZ'));
提前致谢
解决方法
这是预期的行为。您需要将您的活动本地化/语言标志保存在永久存储中,例如 GetStorage、SharedPreferences 或 Hive。您需要在应用启动时获取该值并根据该值设置本地化。
main() async{
SharedPreferences prefs = await SharedPreferences.getInstance();
var isArabic= prefs.getBool('isArabic') ?? false;
runApp(MyApp(isArabic));
}
class MyApp extends StatelessWidget{
final bool isArabic;
MyApp(this.isArabic);
Widget build()=> GetMaterialApp(
locale: isArabic?Locale('ar','DZ'): Locale('en','US'),translations: LLLanguages(),navigatorKey:Get.key,debugShowCheckedModeBanner:false,theme:LLTheme.light,darkTheme: LLTheme.dark,themeMode: ThemeService().theme,home:LLSplashScreen(),);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。