我还是个初学者,当我试图找到添加多个页面的方法时,我发现了Navigator.op()和.ush()方法.显然,他们从所有页面加载所有窗口小部件,然后将它们重叠显示.这肯定意味着糟糕的性能,因为所有页面都是在任何时候加载的?

有没有更好的方法来制作多个页面,或者它不会对性能产生明显的影响?

我期待着有一种方法可以将新页面本身添加到屏幕上

推荐答案

Navigator.pop()Navigator.push()方法用于在不同页面或屏幕之间导航.但是,它们并不是一次从所有页面加载所有的小部件,相反,Ffltter使用一个小部件树,只构建当前需要的或在屏幕上可见的小部件.这有助于通过仅呈现小部件树的相关部分来优化性能.

当您使用Navigator.ush()将新页面推送到导航堆栈时,Ffltter会将新页面添加到堆栈的顶部,并且只会活动地构建和呈现当前顶部页面的小部件.当您使用Navigator.op()弹出页面时,顶部页面将从堆栈中移除,前一页面将成为顶部页面,其小部件将被重新构建和显示.

Ffltter的窗口小部件树 struct 和处理导航的方式使其在性能方面变得高效.该框架确保仅构建和显示当前可见页面上的小部件.

如果您关心的是性能,那么优化您的窗口小部件树并有效地利用状态管理来最大限度地减少不必要的重新构建是非常重要的

这些方法是处理页面间导航的有效方法,如果正确实现和优化,它不一定会对性能产生负面影响.

Flutter相关问答推荐

无法在Flatter中设计正确的布局

在Android Studio的新用户界面中未找到热重新加载

Flutter 图标记移动

material 3芯片,不能go 除输入芯片小部件上的轮廓

如何将Visual Studio代码中Flutter 应用的包名从com.example.XXX更改为Play Store中受限制的包名称

脚本具有不受支持的MIME类型(';Text/html';).(messaging/failed-service-worker-registration)

在Flutter 中更改扩展瓷砖的高度

如何管理枚举类型的阻塞事件?

为Android生成时出现Flutter 错误:给定资源值的<;COLOR&>无效

Flutter飞溅屏幕即使在修改后仍显示默认徽标和背景色

如何在 Flutter 中创建具有渐变背景色的自定义 Snackbar?

带有命名参数的回调函数不起作用

在 Flutter 中使用条件语句设置 ImageProvider Object 类型的背景图像

Dart/Flutter 泛型:类型 '(SearchFilterItemModel) => String' 不是类型 '(SearchFilterItemModel) => String' 的子类型

为 flutter app/firebase 保存 chatgpt api-key 的正确方法是什么

如何从列表中更新provider变量:Flutter列表和Provider优化指南

什么最接近 Dart 的 List.asMap().forEach() 返回列表?

flutter 中 // 和 /// 有什么区别

状况不佳 - Cubit

在 Flutter 应用程序中全局使用 assets 文件夹