有没有办法通过使用共享首选项包来(设置和获取(Color数据类型或List of Widgets数据类型
我想保存用户选择的颜色以及小部件。因此,当用户关闭应用程序并再次运行时,应用程序仍然显示颜色和小部件。
谢谢
可以。
为了将值保存到磁盘,该值必须是共享首选项可以使用并写入磁盘的类型。
在本例中,我们将关注color属性,将其转换为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);
然后,您可以使用具有共享首选项的序列化值setString
,并且当您检索字符串时,反转上面的编码以创建Color
类型的
您需要对Widget
的每个属性执行此转换,以便保存和重新创建它。上面我已经概述了处理颜色属性的过程,您需要对其他属性执行相同的操作。
您将无法直接将小部件保存到磁盘,因为它必须首先序列化为可以写入磁盘的格式