如何维护CupertinoSegmentedControl国际化的状态?

时间:2020-02-13 21:39:03

标签: flutter dart flutter-cupertino

我目前正在通过此链接使用国际化: https://medium.com/flutter-community/flutter-internationalization-the-easy-way-using-provider-and-json-c47caa4212b2

但是我改为将按钮更改为CupertinoSegmentedControl。

enter image description here

问题在于,当我离开页面时,细分受众群始终处于丢失状态。

我尝试使用AutomaticKeepAliveClientMixin,但仍然无法正常工作。

任何答案将不胜感激!

1 个答案:

答案 0 :(得分:0)

这很简单,您需要保存/恢复值,并尝试shared_prefs

我将使用我的插件localize_and_translate

这是一个简单的实现

  1. 您使用方法获取活动的语言代码,该方法将返回语言代码:例如en

    translator.currentLanguage();

2。您按照以下步骤保存到shared_prefs

import 'package:shared_preferences/shared_preferences.dart';

SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.setString('code', translator.currentLanguage());

3。像在小部件树中一样进行检索

prefs.getString('code') == 'en' ? // widget for true : // widget for false,

或者您可以直接使用我的插件而无需shared_prefs

translator.currentLanguage() == 'en' ? // widget for true : // widget for false,