问题标签 [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 投票
2 回答
645 浏览

android - 从 Flutter 中的 BottomNavigationBar-sceeen 导航到子屏幕

我目前正在开发我的第一个简单的颤振应用程序,并试图找出我们处理屏幕之间导航的最佳方法。

已经可能:

  • BottomNavigationBar使用+浏览屏幕BottomNavigationBarItem
  • 导航Navigator.push(context,MaterialPageRoute(builder: (context) => Screen4()),);

问题:

  • 在屏幕上有子屏幕BottomNavigationBar

代码示例:

我想要三个主屏幕Screen1()Screen2()并且Screen3()可以从BottomNavigationBar. 有Screen1()一个按钮可以导航到另一个屏幕,我们称之为Screen4(),用户可以在其中从项目列表中进行选择。然后,您可以将所有选择的项目添加到列表并导航回Screen1()

为了实现这一点,我创建了下面的代码。的主要Widgetbody根据所选的当前索引进行更改BottomNavigationItem

主要.dart

问题是当我在Screen1()- 小部件中导航时Screen4()使用

导航将发生在外部,MyApp()因此没有Scaffold.

如果有人有一个例子,我会很高兴。感谢您的阅读。

0 投票
1 回答
141 浏览

flutter - 你如何重用使用 MaterialPageRoute 构建器创建的 Flutter 视图?

你如何重用使用 MaterialPageRoute 构建器创建的 Flutter 视图?当前,每当调用 Navigator.pushReplacementNamed 时,都会在小部件树中创建新视图。例如,以下代码将在小部件树中创建 4 个视图:

我希望小部件树中只有两个视图 - page1 和 page2 的单个实例。

这可能吗?

0 投票
4 回答
1075 浏览

flutter - Flutter - 当我推送的页面被后退按钮弹出时如何得到通知?

假设这种情况:page1Navigator.push到 page2。page2 上的用户单击后退按钮,因此 page2 弹出并且 page1 重新获得视图。如何在第 1 页捕捉到此事件?

0 投票
1 回答
598 浏览

flutter - 如何在 Flutter 中调用 Stream Builder 中的导航器?

我有一个问题,当我尝试将 navigator pop() 方法放入字符串生成器时,会出现此错误:setState() or markNeedsBuild() called during build.

我读到您不能在流构建器中调用导航器,所以有人对如何解决这个问题有任何想法吗?

这是我的代码:

0 投票
1 回答
581 浏览

flutter - Flutter:子块正在初始化,但数据尚未存储在 shared_preferences 中

我用于我的应用程序 jwt 身份验证。我有带有 bloc 模式的主页,它选择页面将其加载到屏幕上(LoginScreen 或 AppScreen)。LoginScreen 有自己的 bloc 模式,也是 AppScreen。当我输入登录名和密码并单击登录时,会调度 LoginEvent,它将请求发送到 Web 服务并使用 jwt 令牌获取响应,该令牌将存储在共享首选项中,但同时 AppScreen 用他的 bloc 呈现,在这个AppScreen 的时间块正在发送数据请求(需要 jwt 令牌)但为空,因为尚未存储 jwt 令牌。我发现一种解决方法不是优雅的方式,我也可以使用延迟,但这不是正确的方式......

AppScreen 的解决方法:

如果我留下_bloc.add(AppScreenLunched());数据无法加载到主页,因为它会从 Web 服务接收 null

如果我离开

按第一个add数据为空

到第二个add我终于得到了与块一起提供给主页的数据

有什么办法吗?

开始画面:

登录屏幕(部分):

应用屏幕:

授权块:

登录块:

底部导航栏块:

0 投票
1 回答
5235 浏览

flutter - 如何获取当前路线的名称?

我需要获取我当前的路线名称。我习惯于在每个页面中GlobalKey创建。所以我创建:navigatorSeviceNavigator.of(context)navKey

而当我想重定向到另一个页面时,我会编写Keys.navKey.currentState.pushNamed()pushReplacementNamed其他一些方法。

我想知道我在拦截器中的当前路线,我没有上下文。

0 投票
0 回答
156 浏览

flutter - 从外部打开我的颤振应用程序中的文件

我想问是否有人知道在按下共享时如何处理其他应用程序,我的颤振应用程序出现在那里以打开该文件(例如当您在 ios 上共享 pdf 并出现 whatsapp 时)。不知道有没有可能。寻找ios方式,android我们有插件

0 投票
0 回答
4338 浏览

flutter - 如何防止在颤振中重建有状态的小部件

我正在从 api(屏幕 1)加载数据,并在单击项目时打开一个带有新状态小部件的新屏幕(屏幕 2)。但是现在当我从屏幕 2 按返回箭头时,我可以看到屏幕 1,但它再次调用 api。当我们从屏幕 2 回到屏幕 1 时,我不想那样做。

屏幕 1 代码:

屏幕 2:

当我从屏幕 2 返回时,如何防止再次重建屏幕 1?

0 投票
3 回答
768 浏览

flutter - 使用 PageRouteBuilder 时,用户手势和后退按钮不起作用

为了实现淡入淡出过渡,我使用 aPageRouteBuilder()来构建我的一些路线。然而,我注意到在测试应用程序时,Android 上的后退按钮和 IOS 上的用户手势无法导航回之前的路线!

这是正常的行为PageRouteBuilder()吗?还是我可能做错了什么?

多谢!

0 投票
1 回答
2123 浏览

flutter - 按下后退按钮时 Flutter 应用程序崩溃

我的应用主页有一个搜索栏。当点击搜索栏时,用户将被重定向到搜索页面,如下所示:

在搜索页面中。应用栏有一个后退按钮,然后按下后退按钮我希望用户回到主页。我尝试通过使用 Navigator.pop 来做如下:

但是当按下后退按钮时,我得到了非常奇怪的结果。

在搜索页面按下后退按钮时。

屏幕保持这样,当我再次单击返回按钮时,它会停留在搜索页面。