Я пытаюсь построить этот макет, поэтому я могу выбрать блюдо из списка, и когда я выбираю другой обед в тот же день, выбор меняется на недавно выбранный обед ... моя проблема в том, что когда Я переключаюсь на другой день ... Я должен иметь возможность выбрать другую еду ... что происходит, если выбран тот же самый индекс последней выбранной еды ... Я не могу понять, почему это происходит.
Так, например, если я выберу первый прием пищи с 27 мая и переключусь на 28 мая, я обнаружу, что первый прием пищи также будет выбран 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,
),
На самом деле, когда я переключаюсь на второй день ... Я нахожу, что материал выбран, даже не входя в слушателя.
Я надеюсь, что смогу найти способ отменить выбор, когда я уйду на следующий день.