【发布时间】:2020-01-05 02:55:51
【问题描述】:
我有两个堆叠的Scaffolds,一个父母和一个孩子。在按下按钮时,Scaffolds 都会从各自的上下文中显示一个弹出窗口。但无论如何,Navigator.pop 总是关闭最顶部的弹出窗口,忽略传递的上下文。
class StateTest extends State<ScreenTest>{
BuildContext parent, child;
@override
Widget build(BuildContext context) => Scaffold(
drawer : Drawer(child: Container()),
body: Builder(builder : (BuildContext context){
this.parent = context;
return Scaffold(
body: Builder(builder : (BuildContext context){
this.child = context;
}),
floatingActionButton: FloatingActionButton(
onPressed: (){
showDialog(context: parent, child: Center(child: Text('PARENT')));
showDialog(context: child, child: Center(child: Text('CHILD')));
Timer(Duration(seconds: 1), () => Navigator.of(parent).pop());
}
),
);
})
);
}
我只想从特定上下文中消除弹出窗口。
【问题讨论】:
-
您可以尝试将 rootNavigator 参数设置为 true 以用于父级的弹出。不过我还没有测试过。见stackoverflow.com/questions/55548153/…
-
试过了。也不工作
-
我能问一下为什么要嵌套脚手架吗?一般不推荐。请参阅故障排除部分中的:api.flutter.dev/flutter/material/Scaffold-class.html。
-
其实这是我原来的问题。我以为我可以通过堆叠脚手架来解决它,但不是。让我试着分开他们的状态,看看进展如何stackoverflow.com/questions/59590939/…
-
好的,所以要在顶部显示微调器,请使用 Stack() 并使循环进度指示器成为子小部件之一。
标签: flutter