问题标签 [flutter-navigation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
flutter - Flutter Navigation 将路线显示为 /
我有一张带有 PopupMenuButton 的卡片,我可以点击它来执行“复制”操作。我也可以从卡详细信息页面执行相同的操作。我遇到的问题是返回主页,我必须同时满足两条路径。所以如果动作是从详情页执行的,我需要弹两次才能回到首页。
来自主页的操作:
首页 > 添加卡片页面
- navigator.pop() 带我回到主页
详细信息页面中的操作:
首页 > 卡片详情页面 > 添加卡片页面
- 不得不在这里弹出两次。
我知道我必须pop
至少做一次,然后我用popUntil
来检查路线的当前状态。由于某种原因,它总是弹出两次。
调试后,它显示当前路线为/
flutter - Navigation.pop() 和 Navigation.push() 行为奇怪
我正在使用 Flutter 在我的应用程序中创建一个注册部分,我正在尝试执行以下操作:
用户点击注册
用户在注册期间的任何阶段按下后退按钮
然后会弹出一个警告对话框,询问用户是否真的想离开注册过程
用户按是
然后用户被带回应用程序的第一个(主)页面。
这适用于我单击注册后的第一页,但是当我到达第二页时,第 4 步让我保持在同一页面上,然后当我再次尝试时,它可以工作。但这不应该是这样。
经过一番调试,我发现了问题,但我不知道为什么会这样。
我在我的第二个代码片段中将问题作为注释写在函数末尾,onBackPressed()
因此很清楚它在哪里中断:)。
这是我从main.dart导航到注册过程页面的代码:
然后对于注册过程中的每个页面,每当我进入下一页时,我都会执行 aNavigation.pop(context)
将当前注册页面从堆栈中弹出Navigation.push()
,然后执行 a以推送下一页。
以下是每个注册页面中后退按钮功能的代码:
最后是类yesOrNoAlert()
中的函数Tools
。
希望我解释得很好。
flutter - 实现始终具有 AppBar 和 BottomNavigationBar 的屏幕的最佳方法是什么?
我有 3 个屏幕-home
和. 我想要一个and总是出现在我所有的屏幕上。现在,我在文件中定义了and 。每当点击一个选项时,正文就会替换为所选屏幕的内容。friends
profile
AppBar
BottomNavigationBar
AppBar
BottomNavigationBar
Scaffold
main.dart
BottomNavigationBar
Scaffold
主要飞镖:
现在,我有一个在屏幕avatar
中重复使用的自定义小部件。home
单击 时avatar
,我想显示friends
屏幕。onTap
我在以下方法中尝试了此代码avatar
:
朋友飞镖:
在点击avatar
时,我正在获取friends
屏幕,但其他所有内容都丢失了(AppBar
等BottomNavigationBar
)。
我如何实现这一目标?我应该从我的所有 3 个屏幕返回一个带有 等AppBar
的脚手架吗?BottomNavigationBar
这会对性能产生负面影响吗?Scaffold
或者有没有办法通过替换in的主体来做到这一点main.dart
?
flutter - 如何使用 pushNamed 传递的参数?
假设我有两条路线/firstRoute和/secondRoute,分别用于小部件FirstRoute和SecondRoute。我正在使用一些参数将命名路由推入堆栈,就像这样......
我现在如何在SecondRoute中使用这个值?查看了文档,但没有提及。
flutter - 嵌套导航器 pushNamedAndRemoveUntil 谓词路由为空
我正在尝试 pushNamedAndRemoveUntil 但我注意到我的谓词不断返回 null 作为路由。
我的代码:
这打印:
当我这样做时,我可以推到我以前的路线,但从那里弹出只会给我一个空白屏幕。这是因为谓词一直返回 null,所以之前的所有路由都从树中删除。知道发生了什么吗?
请记住,我使用的是嵌套导航器设置,与我在此处的其他问题相同:(带有嵌套导航器的 .popUntil)
谢谢
flutter - 如果用户按下后退按钮,则阻止 Navigator.push
在我的应用程序中,我需要在 call 之前执行代码Navigator.push
。但问题是如果用户在执行代码之前按下后退按钮,则会出现错误:
E/flutter(8415):[错误:flutter/lib/ui/ui_dart_state.cc(148)]未处理的异常:查找已停用小部件的祖先是不安全的。E/flutter (8415):此时小部件的元素树的状态不再稳定。E/flutter (8415):要在其 dispose() 方法中安全地引用小部件的祖先,请通过在小部件的 didChangeDependencies() 方法中调用 inheritFromWidgetOfExactType() 来保存对祖先的引用。
Navigator.push
问题是即使用户按下后退按钮(在 中) ,代码仍在执行并且正在调用Widget2
。
这是mwe:
flutter - 如何从 MaterialPageRoute 中的构建器对象中获取 Widget 类名称
我想要一个自定义的 MaterialPageRoute,其中 RouteSettings 对象将被分配一个默认名称,该名称应该是构建器,即小部件类名称。
我已经覆盖了下面的方法并且不明白如何从构建器对象中获取类名。
在上面的代码中,我试图从构建器获取小部件并将短名称设置为 RouteSettings 名称,但问题是 Casting 并且收到以下错误表示无法进行强制转换
type '(dynamic) => CitySelectionScreen' 不是类型转换中类型 'Widget' 的子类型
我这样做的原因是作为 Firebase 分析集成的一部分,我需要更改我的整个导航代码以添加以前不存在的新 RouteSettings,我试图解决这个问题,改为设置默认名称在整个项目级别进行的更改。
请在这方面帮助我。
flutter - 在 Flutter 中如何处理返回上一页?
在 Flutter 中如何处理返回上一页?如果我这样做了,当第二页关闭时Navigator.push
如何执行一些操作?
flutter - 使用导航器时保持活动页面状态
我有一个有两个页面的应用程序,第一个有一个按钮可以导航到第二个页面,然后选择一个位置列表,保存时会弹出第二个页面并返回所选位置显示在芯片中的第一页,但是如果返回第二页编辑我的选择 现在重新构建了状态并且我的列表消失了 如何将列表状态保留在第二页中?
firebase - Flutter Navigator 从 firebase 推送数据
我们正在尝试从我们当前在网格视图中呈现的 firebase 获取数据,但我希望能够单击网格视图中的项目并阅读有关它的更多信息。
这是我到目前为止所拥有的,也是我在 VS 中遇到的错误
主屏幕