我使用抽屉为用户提供菜单,菜单项打开应用程序的不同页面。但正在发生的事情是,每个打开的新页面都会加载到前一页的顶部。我需要的是将当前页面替换为新请求的页面。
我的主要启动应用程序为:
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),然后每次请求另一个页面时,都会使用请求的页面重新绘制主体(创建的每个页面)作为自定义小部件?)。这是一种可行的方法吗?
感谢您的任何帮助或建议。
保罗
代替Navigator.pop()and then Navigator.push(),使用Navigator.pushReplacement()它将用新屏幕替换上一/当前屏幕。
希望这能回答您的问题。
| 归档时间: |
|
| 查看次数: |
4193 次 |
| 最近记录: |