小编Zig*_*ans的帖子

Flutter 切换开关和共享首选项

我需要在我的应用程序中保存切换开关的状态并在开始时加载它。为此,我使用SharedPreferences

Future<bool> saveSwitchState(bool value) async {
  SharedPreferences prefs = await SharedPreferences.getInstance();
  prefs.setBool("switchState", value);
  return prefs.setBool("switchState", value);
}

Future<bool> getSwitchState() async {
  SharedPreferences prefs = await SharedPreferences.getInstance();
  isSwitchedFT = prefs.getBool("switchState");
  print(isSwitchedFT);

  return isSwitchedFT;
}
Run Code Online (Sandbox Code Playgroud)

每次更改切换值时都会运行 saveSwitchState() 。

问题出在应用程序的启动处。我创建了一个 bool 值:bool isSwitchedFT = false; 我用 false 初始化,因为 null 会给我错误。我如何isSwitchedFT = getSwitchState; 为 isSwitchedFT 设置 On 空值,它可以编译,但我的模拟器上出现红色错误:

'package:flutter/src/material/toggleable.dart': Failed assertion: line 45 pos 15: 'tristate || value
 != null': is not true.
Run Code Online (Sandbox Code Playgroud)

当使用值进行编译时,开关可以正常工作并保存更改的值。

Switch(
  value: isSwitchedFT,
  onChanged: (bool value) …
Run Code Online (Sandbox Code Playgroud)

android flutter flutter-dependencies

2
推荐指数
1
解决办法
4152
查看次数

标签 统计

android ×1

flutter ×1

flutter-dependencies ×1