Android 如何检查UI是否正在刷新?

Android 如何检查UI是否正在刷新?,android,ios,flutter,mobile,flutter-layout,Android,Ios,Flutter,Mobile,Flutter Layout,当我使用小部件显示未来构建器的项目列表时,我遇到了一个问题,我有一个过滤器对象,当我在过滤器屏幕中更改某些内容时,会自动在列表屏幕中获得更改,但始终显示相同的数据,但项目列表具有UI显示的不同项目 这是我的容器: 主体:容器( 颜色:颜色,白色, 孩子:未来建设者( 未来:连接(上下文:上下文)。过滤器位置(过滤器:_过滤器), 生成器:(上下文,快照){ if(snapshot.hasData){ 返回_formatCategories(上下文、snapshot.data.news、snaps

当我使用小部件显示未来构建器的项目列表时,我遇到了一个问题,我有一个过滤器对象,当我在过滤器屏幕中更改某些内容时,会自动在列表屏幕中获得更改,但始终显示相同的数据,但项目列表具有UI显示的不同项目

这是我的容器:

主体:容器(
颜色:颜色,白色,
孩子:未来建设者(
未来:连接(上下文:上下文)。过滤器位置(过滤器:_过滤器),
生成器:(上下文,快照){
if(snapshot.hasData){
返回_formatCategories(上下文、snapshot.data.news、snapshot.data.places);
}else if(snapshot.hasrerror){
var message=Utils.parseError(上下文,snapshot.error);
返回中心(
子项:文本(“$message”),
);
}
返回中心(
子对象:CircularProgressIndicator(),
);
},
),
)
这是我用来制作小部件的函数:

Widget _formatCategories(BuildContext context, List<Publication> publications, ResponsePlaces response) {
    List<Category> categories = <Category>[];

    if (response.hotels.isNotEmpty) {
      categories.add(Category(title: "Hoteles", places: response.hotels));
    }

    if (response.restaurants.isNotEmpty) {
      categories.add(Category(title: "Restaurantes", places: response.restaurants));
    }

    if (response.touristic.isNotEmpty) {
      categories.add(Category(title: "Actividades", places: response.touristic));
    }

    for (var category in categories) {
      print("Category ${category.title}  ${category.places.length}");
    }

    return _containerLists(context, publications, categories);
  }


  Widget _containerLists(BuildContext context, List<Publication> publications, List<Category> categories) {

    List<Widget> items = <Widget>[];

    items.clear();

    items.add(
        Routes.newsSlider(publications)
    );

    for (var index in categories) {
      items.add(
          Routes.placeList(index)
      );
    }

    return SingleChildScrollView(
      scrollDirection: Axis.vertical,
      child: Container(
        child: Column(
          children: items,
        ),
      ),
    );
  }
Widget\u formatCategories(构建上下文上下文、列表发布、响应替换响应){
列表类别=[];
如果(response.hotels.isNotEmpty){
类别。添加(类别(标题:“Hoteles”,地点:response.hotels));
}
if(response.restaurants.isNotEmpty){
类别。添加(类别(标题:“餐厅”,地点:response.restaurants));
}
if(response.touristic.isNotEmpty){
类别。添加(类别(标题:“活动”,地点:response.touristic));
}
for(类别中的var类别){
打印(“Category${Category.title}${Category.places.length}”);
}
返回容器列表(上下文、出版物、类别);
}
小部件容器列表(构建上下文上下文、列表发布、列表类别){
列表项=[];
items.clear();
items.add(
Routes.Newslider(出版物)
);
对于(类别中的var指数){
items.add(
路线.地点列表(索引)
);
}
返回SingleChildScrollView(
滚动方向:轴垂直,
子:容器(
子:列(
儿童:项目,
),
),
);
}
如果你看到我选择了另一种类型的地方,但总是带我去看酒店,这就是证据

这是我得到一份包含不同数据的清单的证据


如果您的
项目列表的大小相同,则可能会发生这种情况。如果这是真的,那么您的元素树就无法识别列中的小部件已经更改,您必须为它们使用UniqueKey。您可以阅读更多关于它的信息,尝试应用它并提供反馈,请

如果您的
项目
列表大小相同,则可能会发生这种情况。如果这是真的,那么您的元素树就无法识别列中的小部件已经更改,您必须为它们使用UniqueKey。您可以阅读更多关于它的信息,尝试应用它并给出反馈。如果您忘记添加一个urls@PhaniRithvij哪一个url?您忘记添加一个urls@PhaniRithvij哪一个url?