0

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

但我将按钮改为 CupertinoSegmentedControl。

在此处输入图像描述

问题是当我离开页面时该段不断丢失状态。

我尝试使用AutomaticKeepAliveClientMixin但仍然没有工作。

任何答案将不胜感激!

4

1 回答 1

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,
于 2020-02-20T08:26:16.863 回答