问题标签 [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.

0 投票
5 回答
1987 浏览

flutter - 如何解决问题Appbar图标点击导航

我尝试开发颤振应用程序。在这个应用程序中,我使用带有用户图标的 Appbar 来导航另一个页面。

带有 Appbar 和人形图标的模拟器

现在我点击了那个图标(人形图标)它显示错误。

调试器中的错误.

通过互联网,它没有适当的文档。我找不到答案。我的源代码是

这是导航类

我仍然无法修复该错误,我遵循了一些文档和堆栈溢出问题。

颤振文档

Github问答

Stackoverflow 问答

0 投票
1 回答
1247 浏览

dart - 空状态页面和导航器问题?

0 投票
2 回答
3939 浏览

dart - StreamBuilder 限制

StreamBuilder每当它获得新事件时都会重建。这会导致例如导航 ( Navigator.push) 出现问题,因为如果在导航时接收到新事件,则此触发器会重建。因为在小部件树仍在构建时尝试导航,这将抛出错误

无法根据需要阻止重建以避免此问题。

建议的解决方法基本上是从缓存中获取流。另外: 这里这里

但这意味着如果还想从列表中的卡片提供导航,则不能让 StreamBuilder 构建列表不断更新。例如在卡片中onPressed()见这里

所以刷新数据必须使用pull来刷新……</p>

有人有更好的解决方案吗?或者 Flutter 团队是否正在努力解决这个限制,例如,如果用户点击卡片,则允许阻止重建?

更新:

TL;DR 是拉刷新唯一的方式来更新数据,因为 StreamBuilder 中的流必须被缓存以防止它在每次收到新事件时重建?

更新 2:

我尝试实现缓存数据,但我的代码不起作用:

...

更新 3:

我尝试使用StreamController但无法正确实施:

…</p>

更新 4:

使用建议_localStreamController给出错误:

在 null 上调用了 getter 'stream'。

在 null 上调用了方法“add”。

0 投票
2 回答
4167 浏览

dart - 如何在 Flutter 中使用 BottomNavigationBar 保留 Widget 的状态?

我有一个BottomNavigationBar,特别是BubbleBottomBar。我已经嵌套MaterialApp了 s 来给Navigator内部的小部件一个新的。但是,当我切换选项卡时,底部导航栏中的每个小部件都会重新构建。这对我不利,因为我想让小部件保持相同状态。我将如何实现这一目标?

0 投票
1 回答
1347 浏览

flutter - Flutter inheritFromWidgetOfExactType() 方法

假设我有两个屏幕。屏幕一和屏幕二。我在 ScreenOne 中有一个按钮,当我按下它时,它会转到 ScreenTwo(Navigator.push)。到目前为止,一切都很好。

此外,我在 ScreenTwo 中有一个后退按钮,我使用此按钮的目的是返回 ScreenOne (Navigator.pop)。但是当我按下这个按钮时,它给了我这个错误:

未处理的异常:查找已停用小部件的祖先是不安全的。此时小部件的元素树的状态不再稳定。要在其 dispose() 方法中安全地引用小部件的祖先,请通过在小部件的 didChangeDependencies() 方法中调用 inheritFromWidgetOfExactType() 来保存对祖先的引用。

我应该如何解决这个问题?

0 投票
0 回答
179 浏览

flutter - 弹出和推送动态路由在 Flutter 中不起作用

以下是我拥有的页面序列:

  • 上传页面 -> 用户选择一些选项

    • 表单页面 -> 用户在表单中输入值并单击上传

上传完成后,使用以下代码将用户带回上传页面。

一切正常。

我的实际问题:

上传完成后,我希望用户被带到上传项目的详细信息页面。但是推送不起作用。

下面是完整的代码。

0 投票
4 回答
18771 浏览

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我要访问的情况是在一堆Navigators 中间的某个地方?

0 投票
1 回答
1212 浏览

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)

你能帮我理解什么是错的吗?

我的路线设置 ->

当我从以下路线返回时,后退按钮适用于预期的所有路线:

0 投票
2 回答
1051 浏览

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应用程序,当我单击返回按钮应用程序刚刚关闭时。

对于这个问题,我将不胜感激。

0 投票
3 回答
749 浏览

flutter - 弹出多屏时如何返回数据?

我知道我可以通过使用将数据返回到上一个屏幕

但在我的情况下,我需要使用弹出多个屏幕

我想知道在这种情况下如何将数据传递回相应的小部件?

提前致谢。