草庐IT

m_navigations

全部标签

navigation - Flutter:Navigator.pushReplacement/pushAndRemoveUntil kill 动画

我想知道是否有一种使用Navigator调用的方法不允许用户向后导航并保持HeroWidget的动画完好无损?我在启动画面和登录屏幕之间有一个英雄小部件图像转换,但我想阻止用户从启动画面返回。Navigator.pushAndRemoveUntil和Navigator.pushReplacement都终止动画过渡动画。 最佳答案 我的解决方案主要是因为WillPopScope污染了另一个页面并阻止了Android上应该关闭应用程序的硬件按钮:FuturepushAndReplace(StringrouteName)async{fin

Flutter:在 Widget 的状态的 initState 中获取 Navigator 传递的参数

我有一个StatefulWidget,我想在命名路由中使用它。我必须按照https://flutter.dev/docs/cookbook/navigation/navigate-with-arguments中的建议传递一些我正在做的论点即Navigator.pushNamed(context,routeName,arguments:,);现在,我需要在状态的initState方法中访问这些参数,因为需要参数来订阅一些外部事件。如果我将args=ModalRoute.of(context).settings.arguments;调用放在initState中,我会得到一个运行时异常。20

flutter - 为什么在 flutter 中调用 Navigator.of(context).pushNamed(..) 时会构建两次小部件?

下面类TestWidget中的build函数在执行导航代码时被调用两次。TestWidget在控制台上打印了两次。有谁知道为什么会这样?classTestWidgetextendsStatelessWidget{@overrideWidgetbuild(BuildContextcontext){print("TestWidget");returnnewScaffold(body:newText("TESTWIDGET"),);}}导航代码:Navigator.of(context).pushNamed(AppRoutes.fieldData);`路线定义:AppRoutes.field

Flutter navigator.push() 对象问题

当使用Navigator.push()将一个对象从一个类传递到另一个类时,即使该对象声明为非最终对象,也不会对其进行修改。主屏幕:创建一个对象(userBean)并传递给第一个屏幕第一个屏幕:显示相同的对象(userBean)值,并将相同的对象(userBean)再次传递到第二个屏幕。第二屏:尝试在第二屏修改相同的对象(userBean),并使用refreshData.then方法在第一屏打印相同的对象(userBean)。Main.dartimport'package:flutter/material.dart';import'package:flutter_app_poc1/fir

dart - 有没有办法限制 Navigation Stack 在 Flutter App 中可以维护的页面数量?

在我的Flutter应用程序中,我注意到我的导航堆栈不断增长。有没有办法限制导航堆栈内存中的页面数量(比如最多4页)?在用户触发一定数量的“后退”按钮后,是否可以最小化/关闭Flutter应用程序? 最佳答案 我不知道有任何设置允许您进行设置。因此,我将提出一种自己处理的方法。以下两个变量是顶级,即您可以将它们放在类之外的任何地方。或者,您可以使用InheritedWidget存储数据,但为简单起见,我不会这样做。intopenedRoutes=1,routePops=0;有两种方法可以捕获路由pop。您可以只捕获来自系统的那些,例

android - Flutter - Navigator 的 'parent != ' null' is not true' 错误

我写了一些检查,然后如果条件为真则导航到下一页。但是,只要该条件返回true并且我打算导航,我就会不断收到错误消息classBuyTicketsextendsStatefulWidget{@override_BuyTicketsStatecreateState()=>new_BuyTicketsState();}class_BuyTicketsStateextendsState{@overridevoidinitState(){...if(condition){//SkiptonextpageNavigator.push(context,MaterialPageRoute(builde

flutter - 每次推送使用不同的动画时如何正确执行 Navigator.popUntil

我正在尝试在Flutter中重建iOS应用程序,但遇到导航问题。这是我想做的:带有添加按钮的已添加交易对列表(A屏幕)“添加”按钮会打开PickerwithExchanges(B屏幕),并从底部过渡到顶部。通过点击交换,它会推送新的PickerwithPairs(C屏幕)从右到左过渡。当用户点击配对时,它会立即关闭所有选择器并将选择结果传送到A屏幕。我尝试了双弹出和弹出,但结果总是一样,我同时看到2个向后转换(从左到右和从上到下)。它在iOS原生应用中的样子:它在Flutter应用中的样子:用嵌套导航器解决用Navigator包裹屏幕B并使用此导航器推送屏幕C,在屏幕C上使用根导航器弹

dart - 使用 Navigator.pushNamed 导航时如何发送参数

我需要将一些参数发送到命名路由。我想做类似的事情:Navigator.pushNamed('/route/1');或者Navigator.pushNamed('/route?param1=1');我不知道是否有办法做到这一点,我正在使用带有路由器的MaterialApp。 最佳答案 第一种方式是我在我的应用程序中使用的方式。Navigator.pushNamed('/route/1');不要忘记使用onGenerateRoute并传递值。我的应用程序示例:routes:{'/':(BuildContextcontext)=>Auth

navigation - flutter 导航器 : Dynamic initial route

我的应用仅在首次启动时显示一些介绍屏幕。首次启动后,第一个显示的屏幕应该是我的HomePage。我试过这些路线:"/"->HomePage()"/intro"->IntroPage()然后像这样设置initialRoute:initialRoute:isFirstLaunch?"/intro":"/"使用该配置,当initialRoute是“/简介”。这很糟糕,因为HomePage()加载了一个CameraPreview,所以它会请求权限并且是资源密集型的。在我明确导航到主页之前,不应加载它。我也试过这个配置:"/"->IntroPage()"/home"->HomePage()然后我

redux - Flutter Redux Navigator GlobalKey.currentState 返回 null

我正在使用Redux开发Flutter。当用户启动一个应用程序时,我希望Redux自动调度一个action。此操作将使Navigator依赖地推送不同的路由。这段代码providedbyaFlutterdevmember使用GlobalKey来使用middleware中的Navigator。在此之后,我将我的代码组织如下:ma​​in.dartvoidmain(){finalstore=newStore(appStateReducer,middleware:createRouteMiddleware());runApp(newMyApp(store));}classMyAppexten