Android 颤振:FutureBuilder在另一个视图上运行
有视图A和视图B。在A上有FutureBuilder。当我通过Navigator.Push()从视图A切换到视图B时,会激活一个附加到视图A上FutureBuilder的函数。如果我不在FutureBuilder的视图中,我不需要FutureBuilder来工作 这是“查看A”(\uStoriesState)的代码,当我转到B(StoryPage)时,将调用getStories函数,该函数只能在(\uStoriesState)中调用。Android 颤振:FutureBuilder在另一个视图上运行,android,flutter,Android,Flutter,有视图A和视图B。在A上有FutureBuilder。当我通过Navigator.Push()从视图A切换到视图B时,会激活一个附加到视图A上FutureBuilder的函数。如果我不在FutureBuilder的视图中,我不需要FutureBuilder来工作 这是“查看A”(\uStoriesState)的代码,当我转到B(StoryPage)时,将调用getStories函数,该函数只能在(\uStoriesState)中调用。 。。。。。。。。。。。。 未来的getStories(int
。。。。。。。。。。。。
未来的getStories(int项、列表选择器SelectedIndex)异步{
试一试{
............
回归故事;
}握手时异常捕捉(e){
打印(“他:+e.toString());
getStories(项目、选取者选择索引);
}关于SocketException捕捉(e){
打印(“SE:+e.toString());
getStories(项目、选取者选择索引);
}关于异常捕获(e){
印刷品(e);
getStories(项目、选取者选择索引);
}
}
............
类_StoriesState扩展状态{
未来列表视图数据;
............
未来getStoriesDataReady(
int项,列表选择器selectedIndex)异步{
列表故事=等待获取故事(项目、选择器选择索引);
if(globals.filter.isEmpty){
回归故事;
}否则{
............
返回搜索故事;
}
}
@凌驾
无效处置(){
super.dispose();
}
@凌驾
小部件构建(构建上下文){
回归未来建设者(
未来:。。。。。。。。。。。。
生成器:(BuildContext上下文,异步快照){
列出儿童名单;
if(snapshot.hasData){
listViewData=
getStoriesDataReady(globals.items、pickerSelectedIndex);
返回脚手架(
正文:未来建设者(
未来:listViewData,
生成器:(BuildContext上下文,
异步快照(快照){
if(snapshot.hasData){
............
子项:FloatingSearchBar.builder(
............
itemCount:snapshot.data.length+1,
项目生成器:
(BuildContext上下文,int索引){
............
onTap:(){
............
导航器。推(
上下文
材料路线(
生成器:(BuildContext上下文)=>StoryPage(………),
).然后((值){
FocusScope.of(context.requestFocus(FocusNode());
});
}
............
}),
............
});
}
}
当您从A推到B时,可以通过以下方式实现:
Function result = await Navigator.push(
context,
MaterialPageRoute(builder: (context) => B()),
);
当你从B跳到A时:
Navigator.pop(context, some_function);
然后您可以使用以下命令从调用某个函数:
result();
你可以在未来建筑中使用它
如果您愿意,请共享您的代码,以便我们可以帮助您实现或找到更好的方法。当您从a推到B时,您可以通过以下方式实现:
Function result = await Navigator.push(
context,
MaterialPageRoute(builder: (context) => B()),
);
当你从B跳到A时:
Navigator.pop(context, some_function);
然后您可以使用以下命令从调用某个函数:
result();
你可以在未来建筑中使用它
如果您愿意,请共享您的代码,以便我们可以帮助您实现它或找到更好的方法。问题是在B视图中调用视图的FutureBuilder问题是在B视图中调用视图的FutureBuilder