繁体   English   中英

当新数据集设置为Flutter中的列表时,如何重置列表项上发生的所有UI更改?

[英]How to reset all UI changes that happened on list items when new data set is set to the list in Flutter?

我的布局

我正在尝试建立这种布局,到目前为止我可以从列表中选择一顿饭,当我从同一天选择另一餐时,选择更改为新选择的餐...我的问题是,当我切换到不同的一天..我应该能够选择不同的一餐..所发生的是最后一次选择的餐点的相同指数被选中..我无法弄清楚为什么会发生这种情况。

因此,例如,如果我从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,
            ),

实际上,当我切换到第二天..我发现东西被选中,甚至没有进入听众。

我希望我能找到一种方法,以便在我去第二天时能够清除选择。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM