【问题标题】:Toggle the like button in flutter在颤动中切换点赞按钮
【发布时间】:2020-08-25 22:25:26
【问题描述】:

我有一个展示产品的应用程序,我有一个模型类来将数据转换为 Json

class TvShow {
  String id;
  String name;
  String image;
  String des;
  String date;
  List<Content> content;
  bool isLiked = false;

  TvShow({this.id,
    this.name,
    this.content,
    this.image,
    this.des,
    this.date,
    this.isLiked});

  void toggleIsLiked() {
    isLiked = !isLiked;
  }

所有数据都来自 Firebase 数据库,除了 (isLiked) 我想在本地处理它

我使用提供程序包

List<TvShow> _favourites = [];
void addFavorite(TvShow tvShow) {
_favourites.add(tvShow);
notifyListeners();
}

 void removeFavorite(TvShow tvShow) {
_favourites.remove(tvShow);
notifyListeners();
  }

 void toggleLikeButton(TvShow tvShow) {
tvShow.toggleIsLiked();
notifyListeners();
 }

int get count {
return _favourites.length;
}

List<TvShow> get favoriteList {
return _favourites;
}

这就像按钮代码

        Padding(
      padding: const EdgeInsets.only(bottom: 20.0),
      child: Align(
        alignment: Alignment.topRight,
        child: IconButton(
            onPressed: () {
              cardDataProvider.toggleLikeButton(tvShow);
              tvShow.isLiked == true
                  ? cardDataProvider.addFavorite(tvShow)
                  : cardDataProvider.removeFavorite(tvShow);
            },
            icon: tvShow.isLiked == true
                ? Icon(
                    Icons.favorite,
                    color: Colors.red,
                  )
                : Icon(
                    Icons.favorite_border,
                    color: Colors.white,
                  )),
      ),
    ),

那么我在喜欢的画面中显示喜欢的列表

问题是当我点击喜欢按钮时,它会变成红色的心,然后又变成空心。

是否有解决方案或更好的方法来实现这个想法,我也想在另一个屏幕上显示类似的按钮状态。

谢谢。

【问题讨论】:

  • 当您更改某些内容时,您必须使用 setState{} 方法,更改必须设置在 setState{}

标签: firebase flutter dart


【解决方案1】:

应该这样做: 用 setState((){}) 包装你的函数 就像这样:

setState((){


cardDataProvider.toggleLikeButton(tvShow);
          tvShow.isLiked == true
              ? cardDataProvider.addFavorite(tvShow)
              : cardDataProvider.removeFavorite(tvShow);
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-31
    • 1970-01-01
    • 1970-01-01
    • 2021-08-06
    • 2021-01-26
    • 1970-01-01
    相关资源
    最近更新 更多