Как в Flutter сохранить цвет иконки при добавлении item в Избранное?

Для сохранения цвета иконки при добавлении элемента в Избранное в приложении 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 в верхнем уровне вашего приложения, чтобы виджеты могли получить доступ к экземпляру модели из любой точки вашего приложения.

В итоге, при добавлении элемента в Избранное, его иконка будет подсвечена указанным вами цветом.