首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Navigator.push后不重建的情况下显示父屏幕中的小部件

在Flutter中,可以通过使用Navigator.pushReplacement方法来实现在Navigator.push后不重建父屏幕中的小部件。

Navigator.pushReplacement方法用于将新的屏幕推入导航器栈中,并替换当前屏幕,从而达到不重建父屏幕中的小部件的效果。

以下是使用Navigator.pushReplacement的示例代码:

代码语言:txt
复制
Navigator.pushReplacement(
  context,
  MaterialPageRoute(
    builder: (BuildContext context) => NewScreen(),
  ),
);

在上述代码中,NewScreen是要显示的新屏幕的小部件。通过调用Navigator.pushReplacement方法,新屏幕将被推入导航器栈中,并替换当前屏幕,从而实现不重建父屏幕中的小部件。

需要注意的是,使用Navigator.pushReplacement方法后,父屏幕中的小部件将不会被重建,但是新屏幕中的小部件将会被创建。

希望这个答案对你有帮助!如果你还有其他问题,欢迎继续提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Flutter 构建完整应用手册-导航器 顶

在Android条款,我们屏幕将是新活动。 在iOS,新ViewControllers。 在Flutter屏幕只是部件! 那么我们如何导航到新屏幕? 使用Navigator!...当用户点击按钮时,应该关闭选择屏幕并让主屏幕知道哪个按钮被点击! 现在,我们将定义UI,并确定如何在下一步返回数据。..., ); 5.在主屏幕上使用snackbar显示选择 既然我们正在启动一个选择屏幕并等待结果,那么我们会想要对返回信息进行一些操作! 在这种情况下,我们将显示一个显示结果Snackbar。...路线 创建两个屏幕显示相同图像 将英雄部件添加到第一个屏幕 将英雄部件添加到第二个屏幕 1.创建两个屏幕显示相同图像 在这个例子,我们将在两个屏幕显示相同图像。...为了用动画将两个屏幕连接起来,我们需要在两个屏幕Hero部件包装Image部件

4.9K10

Flutter 密码锁定屏幕

在任何情况下最新Andriod先决条件所指出那样,您需要在生物识别认证被破坏或受损偶然机会上提供选择性认证策略。 在在本文中,我们将探讨「Flutter「密码锁定屏幕」。...屏幕可适应颜色,大小,文本样式等。它将显示在flutter应用程序中使用密码屏幕时如何解锁屏幕。 该演示视频演示了如何在Flutter创建密码锁定屏幕。...它显示了如何在flutter应用程序中使用「passcode_screen」软件包来运行密码锁定屏幕。它显示密码输入屏幕以解锁屏幕。它会显示在您设备上。...我们将在按钮内添加填充,颜色,文本和onPressed方法,并在此方法上添加**_showLockScreen()**小部件。当我们运行应用程序时,我们应该获得屏幕输出,屏幕下方截图所示。...如果密码有效,则对屏幕进行身份验证。当我们运行应用程序时,我们应该获得屏幕输出,屏幕下方截图所示。 img 不要忘记关闭流。用户可以处理它。

4.9K30

深入探究Flutter页面导航器:Navigator详解

堆栈结构: Navigator路由栈是一个先进堆栈结构,即压入路由对象会位于栈顶,当前页面对应路由对象位于栈顶,而上一个页面对应路由对象位于栈顶下方,依次类推。...了解Navigator基本概念和工作原理对于理解Flutter应用程序页面导航机制非常重要。 3. 页面路由 在Flutter,页面路由(Page Route)是指应用程序各个页面或屏幕。...下面我们来学习如何在Flutter中进行页面路由导航,以及如何使用Navigator.push和Navigator.pop进行页面的跳转和返回操作。 1....路由保持状态 在开发Flutter应用时,有时我们希望保持页面状态,避免页面重建,特别是在页面间切换时。这种情况下,我们可以使用路由保持状态技术来实现。...在build方法,我们使用super.build(context)来调用build方法,并返回一个包裹在KeepAliveScaffold小部件,以实现路由保持状态效果。

70110

Unity性能调优手册8UI:Canvas,Layout,RaycastTarget,Mask,TextMeshPro,UI显示

变化是任何变化,主动切换、移动或调整大小,从外观大变化到第一眼看不出来变化。重建过程成本很高,所以如果执行太多次,或者Canvasui数量很大,性能就会受到不利影响。...如果子画布包含元素发生变化,则只会运行子画布重建,而不会运行画布。然而,仔细观察,当子画布UI被SetActive切换到活动状态时,情况似乎是不同。...在这种情况下,如果在Canvas中放置了大量ui,似乎就会出现导致高负载现象。...因此,你应该在SpriteAtlas添加一个(例如,4 x 4像素)白色正方形图像,并使用该Sprite绘制一个简单矩形。...当单击或触摸屏幕时,启用了此属性对象将成为处理目标,因此尽可能禁用此属性将提高性能 默认情况下启用此属性,但实际上许多图形并不需要启用此属性。

44831

6详解AppBar小部件

由于它是一个如此常用组件,因此 Flutter 为该功能提供了一个名为AppBar专用小部件。 在本教程,我们将通过一些实际示例向您展示如何在 Flutter 应用程序自定义 AppBar。...Flutter AppBar 是根据Material Design指南构建应用程序组件。它通常位于屏幕顶部,并且能够在其布局包含其他小部件。...Flutter AppBar 布局 leading leading 接受一个小部件,可以分配任何东西——文本、图标,甚至一行多个小部件。...您可以使用它来显示图标、图像、形状或使用布局小部件(例如row和 )任意组合column。...工具栏包含文字,图标,按钮,和其他任何公司前景,除了小部件Container和Image。

16.3K10

Flutter 1.22 正式发布

如果您想使用平台视图在iOS或Android上托管自己本机UI组件,则可以了解如何在使用平台视图在Flutter应用托管本机Android和iOS视图上。...而是要对其进行管理,请调用Navigator.pop()或Navigator.push()。举例来说,假设您想在首页上显示一系列小部件,并允许用户点击一个小部件以转到专门针对该颜色详细信息页面。...这个想法是要在导航和Flutter其余部分之间统一模型,同时解决许多问题并添加功能。实际上,这个例子几乎涉及Navigator 2.0内容。...预览:平滑滚动以提供匹配输入和显示频率 当输入和显示频率不同时,Flutter团队与Google内部合作伙伴合作,极大地提高了滚动性能。...例如,Pixel 4输入运行频率为120hz,而显示运行频率为90hz。滚动时,这种匹配会导致性能下降。

7.5K20

从零开始Flutter之旅: StatelessWidget

Rouse 读完需要 12 分钟 速读仅需 4 分钟 这次要展示是什么是 Flutter Widget,即小部件;以及如何在 Flutter 中使用 StatelessWidget,即无状态小部件...它就像是应用程序蓝图,我们将蓝图创建好,然后内部会通过蓝图去创建对应显示屏幕 element 元素。它包含了蓝图上对应部件配置信息。...Widget,并将元素显示屏幕上。...所以我们程序有两颗对应树,其中一颗代表屏幕显示内容 Element;另一颗树代表其展示蓝图 Widget,它们由许多部件组成。...main 是程序入口,而其中 runApp Widget 是整个程序挂载起点。它会创建成一个具有与屏幕宽高一致根元素,并把它装载到屏幕

1.1K40

Flutter Widget框架之旅 顶

在更复杂应用程序,小部件层次结构不同部分可能对不同问题负责; 例如,一个小部件可能呈现一个复杂用户界面,其目标是收集特定信息(日期或位置),而另一个小部件可能会使用该信息来更改整体呈现。...当级收到onCartChanged回调时,级将更新其内部状态,这将触发重建并使用新inCart值创建ShoppingListItem新实例。...当此小部件重建时,级将创建ShoppingList新实例,但该框架将重新使用树已存在_ShoppingListState实例 而不是再次调用createState。...如果重建并创建新ShoppingList,则_ShoppingListState也将使用新widget值重建。...按键 主要文章:Key 您可以使用键来控制框架在小部件重建时哪个小部件匹配哪个其他小部件。默认情况下,框架根据它们runtimeType和它们出现顺序来匹配当前构建和以前构建中部件

6.7K20

Flutter Widget源码解析及实战

Widget功能类似于原生android开发style文件,用来描述UI样式,最终真正绘制在屏幕是Element。...这是因为更改子树深度需要重建,布局和绘制整个子树,而只更改属性将需要对渲染树进行尽可能少更改(例如,在[IgnorePointer]情况下,没有布局)或重绘是必要)。...下面的例子显示了更通用部件`Bird`,它可以被赋予一种颜色和一个子widget,并且它有一些内部状态,可以调用一个方法来改变它。 按照惯例,窗口小部件构造函数仅使用命名参数。...didChangeDependencies:当State对象依赖发生变化时会被调用,如果Widget重建并请求树此位置更新以显示具有相同[runtimeType]和[Widget.key]新Widget...如果移除没有重新插入到树则紧接着会调用dispose()方法。 dispose:当State对象从树中被永久移除时调用;通常在此回调释放资源。

2K20

第132期:flutter导航和路由

导航和路由 Flutter提供了一个完整用于在屏幕之间导航和处理深层链接系统。...使用命名路由Flutter应用也不支持浏览器前进按钮。基于这些原因,官方其实是建议在大多数应用中使用命名路由。 当然,实际开发过程,我们需要根据实际情况进行调整。...相反,通过调用Navigator.push()等方法路由导航,将会在导航添加一个pageless(无页面)路由。...深度链接 Deep linking Flutter支持iOS、Android和web浏览器上深度链接。打开URL会在应用程序显示屏幕。...通过以下步骤,我们可以使用命名路由(使用routes参数或onGenerateRoute)或使用Router小部件启动和显示路由。 如果我们在web浏览器运行应用程序,则无需额外设置。

2K30

Flutter入门三部曲(2) - 界面开发基础

最常见Widget 接着先看看一些常用组件,这些是随时可用部件,开箱即用,你会非常满意: Text - 用于简单地在屏幕显示文本部件。 Image - 用于显示图像。...Icon - 用于显示Flutter内置Material和Cupertino图标。 Container - 在Flutter,相当于div。...Row, Column- 这些小部件显示水平或垂直方向子项列表。 Stack - 堆栈显示一个孩子列表。这个功能很像CSS'position'属性。...注意:如果您熟悉基于组件框架(React或Vue),则可能不需要阅读此内容。Widget就是组件。 封装组件 这样的话,实际开发,也是通过不断对组件封装,来提高工作效率。...6. didUpdateWidget(Widget oldWidget) 如果组件发生变化,而且必须去重建widget时,而且被相同runtimeType重建时,这个方法会被调用。

2.6K00

Flutter入门三部曲(2) - 界面开发基础

最常见Widget 接着先看看一些常用组件,这些是随时可用部件,开箱即用,你会非常满意: Text - 用于简单地在屏幕显示文本部件。 Image - 用于显示图像。...Icon - 用于显示Flutter内置Material和Cupertino图标。 Container - 在Flutter,相当于div。...Row, Column- 这些小部件显示水平或垂直方向子项列表。 Stack - 堆栈显示一个孩子列表。这个功能很像CSS'position'属性。...注意:如果您熟悉基于组件框架(React或Vue),则可能不需要阅读此内容。Widget就是组件。 封装组件 这样的话,实际开发,也是通过不断对组件封装,来提高工作效率。...6. didUpdateWidget(Widget oldWidget) 如果组件发生变化,而且必须去重建widget时,而且被相同runtimeType重建时,这个方法会被调用。

1.6K20

带你快速掌握Flutter视图(Widgets)

通过这篇文章学习,将为你揭开这些答案。 谁是FlutterView? 在Android,View是屏幕显示所有内容基础, 按钮、工具栏、输入框等一切都是View。...在Flutter,您可以使用Widgets库核心布局小部件 Container, Column, Row, 和 Center,关于Widget更多内容可参考:Layout Widgets目录...但是,即使Widget是有状态,如果包含它窗口小部件本身不对这些更改(或其他输入)做出反应,Widget仍然可以是无状态。...另外推荐大家在widget catalog查看 Flutter提供布局。 如何在布局添加或删除组件?...; 在 Flutter ,推荐组合多个 Widgets 来构建一个自定义 Widget(而不是扩展它)。

11K10

Flutter开发一些Tips

导致原因就是在水平或者垂直方向上内容超过了部件大小。一般来说我们页面不存在这样问题,因为根据页面的设计,事先可以预料到是否超出。不过要注意到有输入法弹出页面。...最终我解决方法就是使用Column配合Expanded来实现。修复如下: 3.SafeArea ---- 一旦有部件固定在顶部或者底部(严谨点的话可以说是在屏幕四边)。...Scaffold AppBar,AppBar默认title在Android靠左显示,IOS居中显示。如果需要两个平台效果统一,需要设置在AppBar主动设置centerTitle属性。...页面跳转如果使用MaterialPageRoute来做过渡效果,注意Android中新页面会从屏幕底部滑动到屏幕顶部,IOS中新页面会从屏幕右侧滑动到屏幕左侧。...但是发现打包没有将插件AndroidManifest.xml文件合并。

2.1K30

开始使用-编写你第一个Flutter应用程序 顶

删除lib/main.dart所有代码。 替换为下面的代码,它在屏幕中心显示“Hello World”。...在Flutter,大多数情况都是一个小部件,包括对齐,填充和布局。 Material库Scaffold小部件提供了默认应用程序栏,标题和控制主屏幕部件body属性。...lib/main.dart 第6步:导航到新屏幕 在这一步,您将添加一个显示收藏夹屏幕(在Flutter称为路由)。 您将学习如何在主路由和新路由之间导航。...提示:某些小部件属性采用单个小部件(子级),而其他属性(操作)则采用小部件(子级)数组,方括号([])所示。...新页面的内容是使用匿名函数在MaterialPageRoutebuilder属性构建。 将呼叫添加到Navigator.push突出显示代码所示,将路由推送到导航器堆栈。

9.5K20

Flutter —布局系统概述

但是,我们将对最重要内容进行很好概述,力图将一切可视化。 “两个阶段” 布局系统和约束 首先,小部件是Flutter SDK构建块,但它们不负责将其自身绘制到屏幕。...这意味着组件有责任定义/限制/约束子组件尺寸,并相对于其坐标系进行定位。换句话说,小部件可以选择其大小,但是它必须始终遵守从其父级收到约束。此外,小部件不知道其在屏幕位置,但其父级知道。...此函数检查屏幕当前大小(在我们示例为392:759),然后创建一个BoxConstraints对象,其中包含将发送到我们第一个小部件(MyApp)约束。...每个小部件都有机会向其子项通知不同BoxConstraints(仍然尊重已收到子项)。但是,在这种情况下,他们选择这样做。 现在事情开始变得越来越有趣。...Main获取此“最终”窗口小部件,并将其最终绑定到屏幕。 RenderBox树最终绑定在屏幕上。我们有一个正在运行应用程序。 有趣事情要记住 小部件不知道其在屏幕位置;它组件才知道。

1.7K20

【译】Flutter架构综述

应用程序在所有版本操作系统上看起来和感觉是一样,即使操作系统改变了其控件实现。 Composition 小部件通常由许多其他、单一用途部件组成,这些小部件组合起来可以产生强大效果。...和提供访问屏幕指标(方向、尺寸和亮度)MediaQuery。...通过只走过发生变化widget,Flutter可以只重建元素树需要重新配置部分。 Layout and rendering 这将是一个很少见只画一个小部件应用。...对象可以通过将最大和最小约束设置为相同值来决定子对象大小。例如,手机应用中最上面的渲染对象将其子对象约束为屏幕大小。(子对象可以选择如何使用该空间。...因此,一般来说,这种方法最适合像Google地图这样复杂控件,在Flutter重新实现并不实用。 通常情况下,Flutter应用会根据平台测试在build()方法实例化这些小部件

5.5K10

【QT】QT窗口部件

QWidget提供自我绘制和处理用户输入等基本功能,接收鼠标、键盘和其他事件,并且在屏幕上绘制自己表现。每一个窗口部件都是矩形,并且它们是按照**Z轴(由屏幕里到屏幕外)**顺序排列。...一个窗口部件可以被它窗口部件或者它前面的窗口部件盖住一部分。一个没有窗口部件窗口部件一直是顶级窗口部件。非顶级窗口部件窗口部件。...parent即窗口,默认为0,即没有窗口,是顶级窗口,如果指定parent值,则当前窗体将会是一个子部件。...用户必须完成当前对话框交互操作并且关闭窗口才能操作当前音乐程序其它窗口。模式对话框有它们自己本地事件循环。exec()方法可使窗口以模态方式运行。...QLabel 常用来显示文本、文字、图片、gif动图。

1.2K20

Activity 不只有跳转。功能篇(一)

(只要是在A上实例全部出栈,ABCD,需要用到B,此时栈AB,CD出栈) SingleInstance:对于设置该模式活动(Activity),会创建一个实例保存在新返回栈,这是因为可供其他程序调用这个活动...,达到了共享这个实例,在单个程序:A->B(模式SingleInstance)->C,创建A实例,创建B实例(新返回栈),创建C实例,当点击back键时,会C弹出栈,显示A,再次点击back键,A...,在通过OnCreate方法来执行一些公用代码和Log日志即可。...(),并把保存下来Bundle传给onCreate()和它会默认重建Activity当前视图,我们可以在onCreate(),回复自己数据。...此方法默认实现保存有关Activity视图层次结构状态信息,例如EditText小部件文本或ListView滚动位置。

1.1K20

Qt DesignerQWidget属性表介绍

提示信息,就是当鼠标放到控件上时,会浮动出一个显示提示信息。...---- 默认情况下,仅显示活动窗口子部件toolTip,可以通过在窗口对象设置Qt.WA_AlwaysShowToolTips属性来改变,但是不能在需要显示tooTip部件对象设置。...---- 如果要控制tooTip显示行为(控制显示位置),可以重写部件event()方法捕获事件类型为QEvent.ToolTip事件。...whatsThis帮助信息一般在部件获得焦点,按Shift+F1弹出显示, 如果这个快捷键被别的功能占用,则whatsThis帮助信息可能无法展示。...使用QPalette活跃颜色组,因为ToolTip不是活跃窗口 QPalette.Text 6 与Base一起使用前景色,通常情况下和windowText效果相同,在与Base一起使用情况下

10.4K20
领券