Flutter:使用抽屉菜单导航页面

Pau*_*ott 0 flutter

我使用抽屉为用户提供菜单,菜单项打开应用程序的不同页面。但正在发生的事情是,每个打开的新页面都会加载到前一页的顶部。我需要的是将当前页面替换为新请求的页面。

我的主要启动应用程序为:

void main() {  
  runApp(
    MaterialApp(
      home: MyJobs(),
    ),
  );
}
Run Code Online (Sandbox Code Playgroud)

每个菜单项都会加载新屏幕:

ListTile(
  title: Text('Time Off Requests'),
  leading: Icon(Icons.timer_off, color: Colors.redAccent),
  onTap: () {
    Navigator.of(context).pop();
    Navigator.of(context).push(MaterialPageRoute(builder: (BuildContext context) => TimeOffRequests()));
  },
),
Run Code Online (Sandbox Code Playgroud)

我意识到我没有卸载当前页面。但我不知道该怎么做。或者有更好的方法来做到这一点吗?以更网络化的思维方式,我想创建一个空白主体,然后将一个页面插入到该主体中(可能使用 setState),然后每次请求另一个页面时,都会使用请求的页面重新绘制主体(创建的每个页面)作为自定义小部件?)。这是一种可行的方法吗?

感谢您的任何帮助或建议。

保罗

Dar*_*han 5

代替Navigator.pop()and then Navigator.push(),使用Navigator.pushReplacement()它将用新屏幕替换上一/当前屏幕。

希望这能回答您的问题。