问题标签 [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 - 如何解决问题Appbar图标点击导航
我尝试开发颤振应用程序。在这个应用程序中,我使用带有用户图标的 Appbar 来导航另一个页面。
现在我点击了那个图标(人形图标)它显示错误。
通过互联网,它没有适当的文档。我找不到答案。我的源代码是
这是导航类
我仍然无法修复该错误,我遵循了一些文档和堆栈溢出问题。
dart - StreamBuilder 限制
StreamBuilder
每当它获得新事件时都会重建。这会导致例如导航 ( Navigator.push
) 出现问题,因为如果在导航时接收到新事件,则此触发器会重建。因为在小部件树仍在构建时尝试导航,这将抛出错误。
无法根据需要阻止重建以避免此问题。
但这意味着如果还想从列表中的卡片提供导航,则不能让 StreamBuilder 构建列表不断更新。例如在卡片中onPressed()
。见这里。
所以刷新数据必须使用pull来刷新……</p>
有人有更好的解决方案吗?或者 Flutter 团队是否正在努力解决这个限制,例如,如果用户点击卡片,则允许阻止重建?
更新:
TL;DR 是拉刷新唯一的方式来更新数据,因为 StreamBuilder 中的流必须被缓存以防止它在每次收到新事件时重建?
更新 2:
我尝试实现缓存数据,但我的代码不起作用:
...
更新 3:
我尝试使用StreamController
但无法正确实施:
…</p>
更新 4:
使用建议_localStreamController
给出错误:
在 null 上调用了 getter 'stream'。
在 null 上调用了方法“add”。
dart - 如何在 Flutter 中使用 BottomNavigationBar 保留 Widget 的状态?
我有一个BottomNavigationBar
,特别是BubbleBottomBar。我已经嵌套MaterialApp
了 s 来给Navigator
内部的小部件一个新的。但是,当我切换选项卡时,底部导航栏中的每个小部件都会重新构建。这对我不利,因为我想让小部件保持相同状态。我将如何实现这一目标?
flutter - Flutter inheritFromWidgetOfExactType() 方法
假设我有两个屏幕。屏幕一和屏幕二。我在 ScreenOne 中有一个按钮,当我按下它时,它会转到 ScreenTwo(Navigator.push)。到目前为止,一切都很好。
此外,我在 ScreenTwo 中有一个后退按钮,我使用此按钮的目的是返回 ScreenOne (Navigator.pop)。但是当我按下这个按钮时,它给了我这个错误:
未处理的异常:查找已停用小部件的祖先是不安全的。此时小部件的元素树的状态不再稳定。要在其 dispose() 方法中安全地引用小部件的祖先,请通过在小部件的 didChangeDependencies() 方法中调用 inheritFromWidgetOfExactType() 来保存对祖先的引用。
我应该如何解决这个问题?
flutter - 弹出和推送动态路由在 Flutter 中不起作用
以下是我拥有的页面序列:
上传页面 -> 用户选择一些选项
- 表单页面 -> 用户在表单中输入值并单击上传
上传完成后,使用以下代码将用户带回上传页面。
一切正常。
我的实际问题:
上传完成后,我希望用户被带到上传项目的详细信息页面。但是推送不起作用。
下面是完整的代码。
flutter - 在 Flutter 的嵌套 Navigator 结构中,如何获取特定的 Navigator?
当我有 Nested 时,我遇到了这个问题Navigator
。所以像,
如您所见,我从Navigator
提供的 Top MostMaterialApp
向下导航到 childNavigator
的'two/nextpage'
,然后应该转到MaterialApp
'/three'
. 问题是 do 会onPressed: () => Navigator.of(context).pushNamed('/three'),
返回Navigator
当前context
的 child Navigator
。我需要访问MaterialApp
'sNavigator
才能正确导航。这样做的正确方法是什么?
另外如何处理Navigator
我要访问的情况是在一堆Navigator
s 中间的某个地方?
dart - 使用带有 Flutter 后退按钮的 onGenerateRoute 时断言失败
我正在使用 MaterialApp 中的 onGenerateRoute 在我的颤振应用程序中实现导航。
对于其中一条路线,当我按下 Flutter 在 Appbar 中提供的后退按钮时出现此错误。
E/flutter (22996): [ERROR:flutter/lib/ui/ui_dart_state.cc(148)] 未处理异常:断言失败:布尔表达式不能为空
E/flutter (22996): #0 ModalRoute.willPop (package:flutter/src/widgets/routes.dart) E/flutter (22996):
E/flutter (22996): #1 NavigatorState.maybePop (package:flutter/src/widgets/navigator.dart:1964:57) E/flutter (22996):
E/flutter (22996): #2 Navigator.maybePop (package:flutter/src/widgets/navigator.dart:1291:34)
E/flutter (22996):#3 BackButton.build。(包:flutter/src/material/back_button.dart:91:19)
你能帮我理解什么是错的吗?
我的路线设置 ->
当我从以下路线返回时,后退按钮适用于预期的所有路线:
dart - 如何在 Youtube 和 Instagram 应用程序中实现导航堆栈?
我正在尝试使用 Flutter 制作一个使用底部导航栏的应用程序。我想将我以前访问过的屏幕保留在导航堆栈中,就像在 Youtube 和 Instagram 应用程序中一样。例如,假设我有 3 个不同的底部导航栏(A、B 和 C)。分别点击选项卡A、B、C后,想分别返回C、B、A。
这是我的主要目标,但如果可以实现,我还有一个次要目标。
在 Instagram 和 Youtube 中,如果您按 A -> B -> C -> B -> C 的顺序单击选项卡(现在您在选项卡 C 上),然后当您开始单击返回按钮时,它会将您返回到 C -> B -> 一个标签。基本上,每个选项卡都可以在导航堆栈中放置一次。如果您多次访问同一选项卡,则会从导航堆栈中删除同一选项卡的上一个屏幕。
我正在寻找这个问题的解决方案两天,但我找不到。我什至测试了由阿里巴巴开发人员制作的flutter-go应用程序,当我单击返回按钮应用程序刚刚关闭时。
对于这个问题,我将不胜感激。
flutter - 弹出多屏时如何返回数据?
我知道我可以通过使用将数据返回到上一个屏幕
但在我的情况下,我需要使用弹出多个屏幕
我想知道在这种情况下如何将数据传递回相应的小部件?
提前致谢。