【发布时间】:2021-07-18 18:25:32
【问题描述】:
有没有办法通过使用共享首选项包(设置和获取)颜色数据类型或小部件列表数据类型
我想保存用户选择的颜色以及小部件。因此,当用户关闭应用并再次重新运行时,应用仍会显示颜色和小部件。
谢谢
【问题讨论】:
标签: flutter sharedpreferences flutter-packages
有没有办法通过使用共享首选项包(设置和获取)颜色数据类型或小部件列表数据类型
我想保存用户选择的颜色以及小部件。因此,当用户关闭应用并再次重新运行时,应用仍会显示颜色和小部件。
谢谢
【问题讨论】:
标签: flutter sharedpreferences flutter-packages
是的,你可以。
为了将值保存到磁盘,该值必须是共享首选项可以使用和写入磁盘的类型。
对于本例,我们将重点关注颜色属性,将其转换为 json 并将其编码为字符串。
var color = Colors.white;
var json = {
'r': color.r,
'g': color.g,
'b': color.b,
'a': color.a
};
var serializedValue = json.encode(json);
await SharedPreferences.setString('<your unique key>', serializedValue);
然后您可以将serialized 值与共享首选项setString 一起使用,并在您检索字符串时反转上面的编码以创建Color 类型
您需要为Widget 的每个属性执行此转换,以便保存并重新创建它。上面我已经概述了颜色属性的处理,您需要对其他属性执行相同的操作。
您将无法直接将小部件保存到磁盘,因为它必须先被序列化为可以写入磁盘的格式
【讨论】: