Как сбросить все изменения пользовательского интерфейса, которые произошли в элементах списка, когда новый набор данных установлен в список в Flutter? - PullRequest
0 голосов
/ 27 мая 2019

My Layout

Я пытаюсь построить этот макет, поэтому я могу выбрать блюдо из списка, и когда я выбираю другой обед в тот же день, выбор меняется на недавно выбранный обед ... моя проблема в том, что когда Я переключаюсь на другой день ... Я должен иметь возможность выбрать другую еду ... что происходит, если выбран тот же самый индекс последней выбранной еды ... Я не могу понять, почему это происходит.

Так, например, если я выберу первый прием пищи с 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,
            ),

На самом деле, когда я переключаюсь на второй день ... Я нахожу, что материал выбран, даже не входя в слушателя.

Я надеюсь, что смогу найти способ отменить выбор, когда я уйду на следующий день.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...