我可以通过在 flutter 应用程序中使用共享首选项来保存小部件吗?
can i save widgets by using shared prefrence in flutter apps?
有没有办法通过使用共享首选项包来(设置和获取)颜色数据类型或小部件列表数据类型
我想保存用户选择的颜色以及小部件。因此,当用户关闭应用程序并再次重新运行时,应用程序仍会显示颜色和小部件。
谢谢
是的,你可以。
为了将值保存到磁盘,该值必须是共享首选项可以使用和写入磁盘的类型。
对于此示例,我们将重点关注颜色 属性,将其转换为 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
的 serialized 值,并且当您检索字符串时反转上面的编码以创建 Color
类型
您需要为 Widget
的每个 属性 执行此转换,以便保存和重新创建它。上面我已经概述了对颜色 属性 的处理,你需要对其他颜色做同样的处理。
您将无法直接将小部件保存到磁盘,因为它必须先序列化为可写入磁盘的格式
有没有办法通过使用共享首选项包来(设置和获取)颜色数据类型或小部件列表数据类型
我想保存用户选择的颜色以及小部件。因此,当用户关闭应用程序并再次重新运行时,应用程序仍会显示颜色和小部件。
谢谢
是的,你可以。
为了将值保存到磁盘,该值必须是共享首选项可以使用和写入磁盘的类型。
对于此示例,我们将重点关注颜色 属性,将其转换为 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
的 serialized 值,并且当您检索字符串时反转上面的编码以创建 Color
类型
您需要为 Widget
的每个 属性 执行此转换,以便保存和重新创建它。上面我已经概述了对颜色 属性 的处理,你需要对其他颜色做同样的处理。
您将无法直接将小部件保存到磁盘,因为它必须先序列化为可写入磁盘的格式