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

问题描述 投票:0回答:1

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

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

enter image description here

问题是,当我离开页面时,细分市场一直处于丢失状态。

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

任何答案将不胜感激!

flutter dart flutter-cupertino
1个回答
0
投票

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

我将使用我的插件localize_and_translate完成此操作>

这是一个简单的实现

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

    translator.currentLanguage();

  2. 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,
© www.soinside.com 2019 - 2024. All rights reserved.