我正在尝试构建此布局,到目前为止,我可以从列表中选择一餐,并且当我从同一天选择另一餐时,选择更改为新选择的餐..我的问题是,当我切换到另一天。.我应该能够选择另一顿饭..发生的事情是选择了上次选择的同一顿饭的索引..我无法弄清楚为什么会发生这种情况。 / p>
例如,如果我选择5月27日的第一餐,然后切换到5月28日,我会发现5月28日及其他所有日期也选择了第一餐。
我认为问题在于,当设置新数据时,我需要以某种方式重置列表视图。
这就是我吃饭的方式
mealsSubscription = MealsBloc.todayMealsStream.listen((todayMeals) {
setState(() {
if (todayMeals!= null && todayMeals.length>0){
CircularLoadingBloc.stop();
meals = todayMeals;
}
else{
meals.clear();
}
});
});
这是我的列表视图生成器
MediaQuery.removePadding(
context: context,
child: ListView.builder(
physics: NeverScrollableScrollPhysics(),
shrinkWrap: true,
itemCount: meals.length,
itemBuilder: (context, index) {
return MealItem(
meal: meals.elementAt(index),
showButton: true,
redeemed: true,
showDate:false,
inSubscription: true,
date: MealsBloc.currentVisibleDate,
);
},
),
removeTop: true,
),
实际上,当我切换到第二天时。我发现选择内容甚至都没有进入侦听器。
我希望我能找到第二天去清除选择的方法。