首页 > 解决方案 > 在切换并重新启动应用程序后,如何为 Flutter 中的 Switch 提供正确的值?

问题描述

我有一个开关,可以在浅色主题和深色主题之间切换。开关值 true = 深色主题。开关值假 = 光。并且默认为假。如果我从 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);
    }),

如何重新启动应用程序并且开关具有正确的值?

标签: dartflutter

解决方案


您需要使用shared_preferences_switchValue之类的东西将其保存在磁盘中以 获取更多信息,请参阅: 在磁盘上存储键值数据在 更改时保存值:

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);
  }
}

推荐阅读