Flutter 如何防止在Navigator中不绘制以前的页面?

Flutter 如何防止在Navigator中不绘制以前的页面?,flutter,dart,Flutter,Dart,我在这里遇到了一个小问题: 当我将非全屏小部件推入导航器时。 之前的小部件根本不会被绘制,导致黑色背景,即使其目的是要有一个简单的对话框 如何防止这种情况发生?或者有什么简单的解决办法 导入“包装:颤振/材料.省道”; void main()=>runApp(MyApp()); 类MyApp扩展了无状态小部件{ @凌驾 小部件构建(构建上下文){ 返回材料PP( 标题:“对话问题”, initialRoute:“/”, 路线:{ “/”:(上下文)=>MyHomePage(), “/dialog

我在这里遇到了一个小问题:

当我将非全屏小部件推入导航器时。 之前的小部件根本不会被绘制,导致黑色背景,即使其目的是要有一个简单的对话框

如何防止这种情况发生?或者有什么简单的解决办法

导入“包装:颤振/材料.省道”;
void main()=>runApp(MyApp());
类MyApp扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
返回材料PP(
标题:“对话问题”,
initialRoute:“/”,
路线:{
“/”:(上下文)=>MyHomePage(),
“/dialog”:(上下文)=>dialog(子项:文本('y u do dis:(我如何更改它?'))
}
);
}
}
类MyHomePage扩展StatefulWidget{
MyHomePage({Key}):超级(Key:Key);
@凌驾
_MyHomePageState createState()=>\u MyHomePageState();
}
类_MyHomePageState扩展状态{
//这会将对话框推送到导航器上。
void\u navigateToDialog(构建上下文){
设置状态(){
pushNamed(上下文“/dialog”);
});
}
@凌驾
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(
标题:文本(“对话问题”),
),
正文:中(
子:列(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
正文(
“为什么会发生这种情况?”,
),
],
),
),
浮动操作按钮:浮动操作按钮(
按下:()=>\u导航对话框(上下文),
工具提示:“完成任务”,
子:图标(Icons.add),
),
);
}
}

如果要在新屏幕上显示对话框,请在
路由中使用以下命令

'/dialog': (context) => Scaffold(
              body: AlertDialog(
                title: Text("My dialog"),
                content: Text("This is body"),
                actions: <Widget>[FlatButton(onPressed: () => Navigator.pop(context), child: Text("Dismiss"))],
              ),
            ),
输出


如果要在新屏幕上显示对话框,请在
路由中使用以下命令

'/dialog': (context) => Scaffold(
              body: AlertDialog(
                title: Text("My dialog"),
                content: Text("This is body"),
                actions: <Widget>[FlatButton(onPressed: () => Navigator.pop(context), child: Text("Dismiss"))],
              ),
            ),
输出


是否要在主屏幕上显示对话框?问题是,您的路线中有一个对话框作为主要的小部件。通常您不想这样,您只想在主路线内显示对话框,这样会覆盖它。查看此链接->特别是
\u showMaterialDialog
方法是否要在主屏幕上显示对话框?问题是你有一个对话框作为路线的主要部件。通常你不想这样,你只想在主路线内显示对话框,它将覆盖它。查看此链接->特别是
\u showmaterialdialdialog
方法哦。我明白了!谢谢!所以问题是导航器不会在t之后绘制前面的内容过渡已经完成。(这是合理的,因为那样会浪费资源)。但是,由于ShowDialog函数不会更改当前路线,其他内容将在其下呈现。这正是我所要查找的。哦,我明白了!谢谢!所以问题是导航器在过渡完成后不会绘制上一个内容。(这是合理的,因为这样会浪费资源).但是,由于ShowDialog函数不会更改当前路线,因此其他内容将在其下呈现。这正是我要查找的内容。