有人对在 Flutter 中找出嵌套导航有什么建议吗?
我想要的是即使在重定向到新屏幕时也能保持一个持久的 BottomNavigationBar。与 YouTube 类似,即使您更深入地浏览菜单,底部栏也始终存在。
我无法从文档中弄清楚。
到目前为止,我能找到的唯一一个深入了解我的要求的教程是https://medium.com/coding-with-flutter/flutter-case-study-multiple-navigators-with-bottomnavigationbar-90eb6caa6dbf (源代码)。然而,它超级混乱。
现在我正在使用
Navigator.push(context,
MaterialPageRoute(builder: (BuildContext context) {
return Container()
Run Code Online (Sandbox Code Playgroud)
然而,它只是将新的小部件推送到整个堆栈上,围绕着底部导航栏。
任何提示将非常感谢!
我PrimaryScrollController在自定义有状态小部件中使用 to ,该小部件基本上是一个ListView在用户滚动时从服务器加载项目的代码。我需要PrimaryScrollController,点击 iOS 上的应用栏顶部即可滚动回顶部。
我在多个页面中使用相同的小部件,这些小部件由BottomNavigationBar. 我还尝试保持状态,以便当用户滚动,然后更改到底部导航栏中的另一个选项卡,然后返回到第一个选项卡时,滚动位置和从服务器加载的所有项目仍将在那里。
为了保留页面的状态,我正在使用IndexedStack. 但是,由于两个页面同时使用,PrimaryScrollController我在控制台中收到一长串相同的错误消息:flutter: Another exception was thrown: ScrollController attached to multiple scroll views.\n我知道这告诉我不应该ScrollController在多个视图中使用相同的错误消息。简单的解决方案是为每个视图创建一个新实例。但是,我必须使用相同的,ScrollController因为我需要PrimaryScrollController点击 iOS 上的应用栏才能工作。
如果我只是忽略错误,实际代码就会按照我想要的方式工作,每个页面都会保留自己的状态。\n实际上,它并没有按照我想要的方式工作。当监听器位于单独的页面上时,它们不起作用。
我创建了一个示例应用程序来显示问题:
\n\nimport 'package:flutter/material.dart';\nimport 'dart:math';\n\nvoid main() => runApp(MyApp());\n\nclass MyApp extends StatelessWidget {\n // This widget is the root of your application.\n @override\n Widget build(BuildContext context) {\n return MaterialApp(\n title: 'Flutter Demo',\n theme: ThemeData(\n …Run Code Online (Sandbox Code Playgroud)