问题标签 [cupertinotabbar]

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 投票
1 回答
3744 浏览

flutter - Flutter:移动到下一个屏幕时,CupertinoTabBar 不会消失

我正在运行 Google 的 Flutter Gallery 示例:

https://github.com/flutter/flutter/blob/master/examples/flutter_gallery/lib/demo/cupertino/cupertino_navigation_demo.dart

在下面的 gif 图中,请注意当我从一个屏幕导航到下一个屏幕时,Cupertino 选项卡栏停留在屏幕底部。之所以如此,是因为它是一个小部件,它放置在父窗口小部件cupertinonavigationdemo中,而在视图中交换了选项卡时,标签栏仍保留。

导航时有没有办法摆脱标签栏?

在此处输入图像描述

0 投票
1 回答
1956 浏览

flutter - Flutter 禁用标签栏项目

我希望能够以编程方式禁用/启用 Flutter 中的标签栏项目,并且想知道如何去做?

例如,在 IOS 中,它将类似于tabBarItem1.isEnabled = false.

我想禁用用户与标签栏的交互,直到他们首先完成一个过程,例如按下按钮。

任何帮助/指针将不胜感激。

0 投票
0 回答
3722 浏览

routes - Flutter RouteAware 和 RouteObserver 与 CupertinoPageRoute

创建一个使用 CupertinoPageRoute 而不是 MaterialPageRoute 完成导航的应用程序。我使用了 RouteAware 和 RouteObserver,它们与 MaterialPageRoute 完美配合。但是,我使用的是 CupertinoTabView,它应该始终对用户可见。我可以完美地从一个屏幕导航到另一个屏幕,并且 CupertinoTabView 始终可见,但我无法检测到屏幕何时再次出现。想知道需要更改什么,以便我可以检测到何时返回到先前的屏幕。通常 void didPopNext() 在返回初始屏幕时会触发。

0 投票
1 回答
1487 浏览

dart - 如何使用 CupertinoTabBar 移动标签?与材质标签栏不同,我们没有标签控制器来切换标签

我在主页选项卡上,我需要使用 CupertinoTabBar 切换到我的第二个选项卡。我没有 tabcontroller 可以使用材质选项卡栏之类的全局键进行切换。你能建议选择吗?

我尝试使用全局键并更改选项卡的 currentIndex。然而,没有运气。已经没有选择了。

HomeScreen.dart - 包含选项卡

HomeTab.dart - 包含“查看更多旅行”按钮。单击按钮应该带我到第二个选项卡

0 投票
2 回答
1576 浏览

flutter-cupertino - Flutter CupertinoTabBar:无法通过流事件上的索引切换到选项卡

尝试在CupertinoTabBar's选项卡 1 处于活动状态时激活选项卡 0,stream event如下所示:

当事件来自_drawerStream. 仍在使用调试器跟踪发生了什么,它发现CupertinoTabBar小部件构建了 2 次,第一次它的当前索引参数为 0,这是我们真正需要的。但是第二次运行它会在当前索引参数设置为 1 的情况下重建,这不是我们想要的。

这是什么原因,我们如何切换到外部事件的选项卡?

0 投票
1 回答
2276 浏览

flutter - 显示键盘时如何隐藏cupertinoTabBar?或者如何让键盘覆盖酒吧?还是将标签栏始终保持在底部?

我在我的颤振应用程序中使用 CupertinoTabBar。问题是当键盘出现时底部栏显示,它不应该。它是一个底部栏,它应该始终位于底部。

我还没有找到一些方法或技巧来做到这一点。也许有人可以指导我做出正确的行为。

这是我的颤振医生输出

医生摘要(要查看所有详细信息,请运行 flutter doctor -v):

[✓] Flutter (Channel master, v1.6.1-pre.50, on Linux, locale en_US.UTF-8)

[✓] Android 工具链 - 为 Android 设备开发(Android SDK 版本 28.0.3)

[✓] Android Studio(3.3版)

[✓] VS 代码(版本 1.33.1)

[✓] 连接设备(1 个可用)

这是 cupertinoTabBar 允许的唯一选项:

这是键盘出现时我的 CupertinoTabBar 上升的方式:

捕获

更新:

我正在尝试验证键盘的状态是否不显示 CupertinoTabBar,但它位于 CupertinoTabScaffold 内:

这是键盘出现时的显示方式:

仍然可见 CupertinoTabBar

0 投票
0 回答
917 浏览

flutter - 在 Cupertino 选项卡之间切换时如何重置导航器

我正在尝试在 Flutter 中设置一个多页应用程序,其中底部标签栏包含四个最常用的页面,包括一个“更多”按钮。更多按钮显示带有指向其他页面的链接的页面。当点击一个页面时,我希望这个页面替换“更多”页面,因此创建了一个新的导航堆栈。但是,当切换到另一个选项卡然后返回“更多”选项卡时,会记住导航状态。这意味着我没有看到“更多”页面,而是我在切换标签时留下的页面。每次用户单击“更多”选项卡时,我都想显示“更多”页面。

我尝试使用导航器的 pushReplacement 方法,因此当用户单击更多页面时,他无法导航回更多页面列表。但是,在切换选项卡时,不再显示更多页面,因为它已被替换。

我还尝试调整选项卡回调方法,以弹出所有视图并将导航器返回到 MoreScreen。但是,这让我在控制台中出现错误:setState() or markNeedsBuild() called during build..

选项卡屏幕:

还有MoreScreen,它持有一个按钮可以转到另一个页面:

我希望每次切换标签时导航堆栈都会重置,但现在我必须手动使用:

Navigator.of(context).popUntil((route) => route.isFirst);

这会导致错误消息:setState() or markNeedsBuild() called during build.在标签中推送新页面然后切换标签后。

0 投票
1 回答
1000 浏览

flutter - 从 CupertinoTabScaffold 导航出去

我有一个带有 LoginScreen 的应用程序,在成功登录后会转到 HomeScreen。我使用下面的代码来替换小部件并启动一个新的导航堆栈:

HomeScreen 是一个CupertinoTabScaffold2 CupertinoTabViews

第二个CupertinoTabView包含一个具有注销按钮的小部件。

成功注销后,我想删除 HomeWidget,然后转到 LoginScreen。

使用

在第二个内部的 Widget 中CupertinoTabView仅重置其导航,并且 LoginScreen 出现在第二个内部CupertinoTabView

我想要的是一些代码来删除我的 HomeScreen 并使用 LoginScreen 启动一个新的导航堆栈。

0 投票
1 回答
567 浏览

flutter - Flutter SnackBar 显示在 CupertinoTabBar 下(隐藏的snackBar)

我在根页面上使用了 BottomNavigatoinBar。在一个有状态小部件的页面(探索页面)上,它有一个带有三个选项卡的 CupertionoSegmentedTab,每个选项卡都显示列表视图。

我必须根据列表视图项单击来显示 SnackBar。我可以成功显示 SnackBar 但它隐藏在 BottomNavigatoinBar 后面。有什么解决方案可以在 BottomNavigatoinBar 上方显示吗?

0 投票
2 回答
3387 浏览

flutter - Flutter:在 CupertinoTabScaffold 中处理多个导航屏幕

您好,我是 Flutter 的新手,我正在尝试为每个选项卡实现一个带有多个导航屏幕的底部选项卡栏。

这是我的初始设置

这是我的主屏幕

这是我的屏幕1

这是我的屏幕3

tabBar 工作正常,我可以在 2 个选项卡之间切换,但我无法从屏幕 1 导航到屏幕 3。当我点击 screen1 中心小部件时,屏幕开始导航,但中途停止,然后屏幕变成全黑...

这是错误

有多个英雄在子树中共享相同的标签。在要为其动画英雄的每个子树(即 PageRoute 子树)中,每个英雄必须有一个唯一的非空标记。在这种情况下,多个英雄具有以下标签: 带有导航器 NavigatorState#05492 的库比蒂诺导航栏的默认英雄标签(代码:跟踪 2 个代码)

我了解问题与导航栏的英雄标签有关,该标签必须具有唯一标识符。我应该如何解决这个问题?我应该为所有导航栏分配一个 heroTag 吗???

非常感谢您的帮助