gpt4 book ai didi

dart - 如何在 flutter 中管理图像上的按钮

转载 作者:IT王子 更新时间:2023-10-29 07:20:45 25 4
gpt4 key购买 nike

我为图像制作了一个图标按钮,让用户可以选择喜欢该图像,但是当我转到另一个页面或重新打开应用程序时,喜欢的照片再次不喜欢。我如何确保我喜欢的照片如果我重新打开它,什么时候仍然喜欢?

P.S.-我可以在新屏幕中显示我喜欢的所有照片吗?

class FavoriteWidget extends StatefulWidget {
@override
_FavoriteWidgetState createState() => _FavoriteWidgetState();
}

class _FavoriteWidgetState extends State<FavoriteWidget> {
bool liked = false;

_pressed() {
setState(() {
liked = !liked;
});
}

@override
Widget build(BuildContext context) {
return Row(
mainAxisSize: MainAxisSize.min,
children: [
Container(
child: IconButton(
icon: Icon(liked ?Icons.favorite: Icons.favorite_border,
color: liked ? Colors.red :Colors.grey ),
onPressed: () => _pressed(),
),

),

],
);
}
}

即使在关闭应用程序或转到其他屏幕后,除非我不喜欢它,否则我会永久喜欢照片..

最佳答案

让您的应用记住任何类型的数据取决于两个主要因素:

1- 数据容器(变量、数据库等)的生命周期

2- 您希望使用数据的范围(类、页面、应用程序)

根据我在您的问题中的理解。您希望您的应用程序在关闭/重新打开按钮后记住按钮的状态。

通常,Dart 中使用的大多数数据变量都存储在移动 volatile 存储器 (RAM) 中。这使得它们在关闭您的应用程序后立即被操作系统清除。这有助于其他正在运行的应用程序找到要处理的内存空间。

因此,将 Button 的状态存储在常用变量(例如:bool)中对您的情况没有帮助。

解决您的问题您有 2 种非 volatile 数据存储方法:

1- 使用 SQLite 数据库将按钮键引用的按钮状态存储为 主键。 (SQLite 将您的数据存储在 App 包内的数据库永久文件中)。 Read from here

2- 最简单和最快的方法:使用 sharedPreferences 将每个按钮键引用的按钮状态存储为“sharedPreferences Read from here”中的键值对。

希望能帮到你

关于dart - 如何在 flutter 中管理图像上的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55765981/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com