【发布时间】:2021-01-10 10:04:48
【问题描述】:
我试图允许用户将由 ListView.builder 构建的帖子标记为 like 。使用我当前的代码,当用户喜欢一个帖子时,所有帖子都被标记为收藏。我希望用户能够单独添加每个帖子,并在重新启动后保留该收藏夹。我已将数据保存到 api,但似乎应该在应用程序本身中处理。
这是我的代码:
bool isFavourite = false;
ListView.builder(
itemCount: serviceProvider.justPostsModel.length,
itemBuilder: (context, index) {
return Padding(
padding: const EdgeInsets.only(left: 4.0, right: 4.0, bottom: 4),
child: InkWell(
onTap: () {
},
child: Container(
width: MediaQuery.of(context).size.width,
child: Card(
child: Column(
children: [
Padding(
padding:
const EdgeInsets.only(left: 8.0, right: 12),
child: Row(
children: [
InkWell(
onTap: () async {
if (isFavourite == false) {
await serviceProvider.setToggleLike(
context,
serviceProvider
.justPostsModel[index].id);
await serviceProvider
.getPostsList(context);
setState(() {
isFavourite = true;
});
} else {
await serviceProvider.setToggleLike(
context,
serviceProvider
.justPostsModel[index].id);
await serviceProvider
.getPostsList(context);
setState(() {
isFavourite = false;
});
}
},
child: Icon(
isFavourite == false
? Icons.favorite_border
: Icons.favorite,
color: Constants.skyColor(),
),
),
],
),
),
]),
),
),
),
);
},
),
那么,我怎样才能以最好的方式做到这一点!
【问题讨论】:
标签: flutter user-interface dart