Для сохранения цвета иконки при добавлении элемента в Избранное в приложении Flutter, вам необходимо использовать подход с использованием состояния (state management).
Во-первых, вам понадобится создать класс состояния, который будет отслеживать состояние выбора элемента в Избранное. В этом классе вы можете использовать набор идентификаторов элементов, для каждого из которых сохраняется флаг, указывающий на то, добавлен элемент в избранное или нет.
Примерно так может выглядеть класс состояния:
class FavoritesModel extends ChangeNotifier { Set<int> _favoriteItems = {}; bool isFavorite(int itemId) { return _favoriteItems.contains(itemId); } void toggleFavorite(int itemId) { if (_favoriteItems.contains(itemId)) { _favoriteItems.remove(itemId); } else { _favoriteItems.add(itemId); } notifyListeners(); } }
Затем вы можете использовать этот класс в вашем виджете иконки для элемента списка. В зависимости от того, добавлен элемент в Избранное или нет, вы подсветите иконку нужным цветом.
Пример виджета иконки:
class FavoriteIcon extends StatelessWidget { final int itemId; final FavoritesModel favoritesModel; FavoriteIcon(this.itemId, this.favoritesModel); @override Widget build(BuildContext context) { return IconButton( icon: Icon( favoritesModel.isFavorite(itemId) ? Icons.favorite : Icons.favorite_border, color: favoritesModel.isFavorite(itemId) ? Colors.red : Colors.black, ), onPressed: () { favoritesModel.toggleFavorite(itemId); }, ); } }
Не забудьте также объявить Provider
для FavoritesModel
в верхнем уровне вашего приложения, чтобы виджеты могли получить доступ к экземпляру модели из любой точки вашего приложения.
В итоге, при добавлении элемента в Избранное, его иконка будет подсвечена указанным вами цветом.