Flutter 在flatter中过滤Listview时如何正确使用流提供程序和where子句
我有一个用户列表,它是以firebase(用户集合)流的形式与提供者一起获得的。我还有一个Like按钮和shortlist按钮,这些选择也存储在firebase(子集合)中,并且再次作为流从firebase获取 当加载列表时,我过滤所有用户流,以不显示已经喜欢的和入围的电影。。。。如下图所示 现在,当用户喜欢或短名单一个新用户的配置文件消失(如预期),但它是非常突然和非常快的名单重建,我如何显示一些动画之前,名单重建。。。我做错了吗 下面是我如何过滤来自全用户提供商的短名单和喜好Flutter 在flatter中过滤Listview时如何正确使用流提供程序和where子句,flutter,google-cloud-firestore,flutter-layout,Flutter,Google Cloud Firestore,Flutter Layout,我有一个用户列表,它是以firebase(用户集合)流的形式与提供者一起获得的。我还有一个Like按钮和shortlist按钮,这些选择也存储在firebase(子集合)中,并且再次作为流从firebase获取 当加载列表时,我过滤所有用户流,以不显示已经喜欢的和入围的电影。。。。如下图所示 现在,当用户喜欢或短名单一个新用户的配置文件消失(如预期),但它是非常突然和非常快的名单重建,我如何显示一些动画之前,名单重建。。。我做错了吗 下面是我如何过滤来自全用户提供商的短名单和喜好 final
final shortlist = Provider.of<List<Shortlist>>(context);
final mylike = Provider.of<List<Liked>>(context);
final ilike = Provider.of<List<ILike>>(context);
var newlike = [];
var newilike = [];
var newshortlist = [];
if (shortlist != null) {
shortlist.forEach((element) {
newshortlist.add(element.shortlisteduser);
});
}
if (mylike != null) {
mylike.forEach((element) {
newlike.add(element.likedby);
});
}
if (ilike != null) {
ilike.forEach((element) {
newilike.add(element.likeduser);
});
}
final profilelist = Provider.of<List<CurrentUserModel>>(context);
List<CurrentUserModel> newlist = [];
if (profilelist != null) {
newlist = profilelist
.where((element) => !data.user.uid.contains(element.uid))
.where((element) =>
!data.user.uid.contains(element.uid)) //for excluding current user
.where((element) => !newshortlist
.contains(element.uid)) // for excluding shortlisted users
.where((element) => !newlike.contains(element.uid))
.where((element) => !newilike
.contains(element.uid)) // for excluding users that liked me
.toList();
}
final shortlist=Provider.of(上下文);
final mylike=Provider.of(上下文);
最终ilike=提供者(上下文);
var newlike=[];
var newilike=[];
var newshortlist=[];
if(短名单!=null){
候选名单。forEach((元素){
newshortlist.add(element.shortlisteduser);
});
}
if(mylike!=null){
mylike.forEach((元素){
newlike.add(element.likedby);
});
}
如果(ilike!=null){
ilike.forEach((元素){
添加(element.likeuser);
});
}
final profilelist=Provider.of(上下文);
List newlist=[];
if(profilelist!=null){
newlist=profilelist
.where((element)=>!data.user.uid.contains(element.uid))
。其中((元素)=>
!data.user.uid.contains(element.uid))//用于排除当前用户
.where((元素)=>!newshortlist
.contains(element.uid))//用于排除入围用户
.where((element)=>!newlike.contains(element.uid))
.其中((元素)=>!newilike
.contains(element.uid))//用于排除喜欢我的用户
.toList();
}
所有这些都有效。。。我想要的是,当一个用户将新用户列入短名单时,它应该优雅地消失,显示一些动画,然后呈现新的配置文件。。。此外,短名单是一个按钮,但可以打开一个模式,然后用户可以喜欢一个配置文件您正在寻找动画列表吗?