在切换并重新启动应用程序后,如何为Switch in Flutter提供正确的值?

时间:2018-06-18 12:25:42

标签: dart flutter

我有一个开关,我在灯光主题和黑暗主题之间切换。切换值true =黑暗主题。切换值false = light。默认值为false。 如果我从false切换到true,主题切换到暗到目前为止都很好。但是,如果我重新启动应用程序,则交换机为false,并显示黑暗主题。

bool _switchValue = false;

void _changeThemeInOpp(bool switchValue) {
  setState(() {
    _switchValue = switchValue;
  });
  if (_switchValue == true) {
    DynamicTheme.of(context).setBrightness(Brightness.dark);
  } else {
    DynamicTheme.of(context).setBrightness(Brightness.light);
  }
}

new Switch(
    value: _switchValue,
    onChanged: (bool switchValue) {
      _changeThemeInOpp(switchValue);
    }),

如何重新启动应用并且交换机具有正确的值?

1 个答案:

答案 0 :(得分:1)

您需要使用shared_preferences之类的内容将void _changeThemeInOpp(bool switchValue) async{ // save new value final _switchValue= await SharedPreferences.getInstance(); _switchValue.setInt('Value', switchValue); setState(() { _switchValue = switchValue; }); if (_switchValue == true) { DynamicTheme.of(context).setBrightness(Brightness.dark); } else { DynamicTheme.of(context).setBrightness(Brightness.light); } } 保存在磁盘中 有关更多信息,请参阅 Storing key-value data on disk 更改时保存值:

pastebin.com/raw/TJkCEd1T