【问题标题】:How to hide the Navigation Bar (on the iPhone X) in Flutter如何在 Flutter 中隐藏导航栏(在 iPhone X 上)
【发布时间】:2018-08-23 19:46:33
【问题描述】:

如何隐藏导航栏,这是在 Flutter 中通过 iPhone X 引入的iOS

在图片中我想隐藏底部的白色栏,这是新 iOS 版本的标准导航栏。

【问题讨论】:

  • 请说明您进行了哪些研究、您已经尝试过哪些内容、哪些内容无效、代码示例等。阅读How to Askminimal reproducible example 并更新您的问题。
  • 我试过搜索它,但根本找不到任何有用的东西。因此,我为什么在这里问。
  • @AshleyMills 您还期待什么更多信息?
  • @creativecreatorormaybenot 至少有一些关于如何隐藏主页指示器的内容。我不想只是把小部件放在它上面。在swift中,我们覆盖prefersHomeIndicatorAutoHidden
  • 在@AshleyMills 批评的问候中,我为你的帖子辩护,因为我觉得你提供的信息已经足够了。

标签: ios dart flutter iphone-x


【解决方案1】:

我创建了a package to do this:将home_indicator 添加到您的 pubspec.yaml,然后

import 'package:home_indicator/home_indicator.dart';

await HomeIndicator.hide();

【讨论】:

    【解决方案2】:

    在 Flutter 中,SystemChrome 负责处理。
    函数setEnabledSystemUIOverlays 采用枚举SystemUiOverlayList,即SystemUIOverlay.bottomSystemUIOverlay.top,两者都有或根本没有。

    对于您的具体情况,我建议在 main 函数中调用它应该可以很好地开始:

    SystemChrome.setEnabledSystemUIOverlays([SystemUiOverlay.top]);
    runApp(...);
    

    如您所见,我只提供了 SystemUIOverlay.top,因此禁用系统 UI 覆盖的底部,这是您新 iOS 导航和 Android 导航上的主页指示器,该导航将被隐藏。

    我不了解 iOS 上的所有运行时场景,这意味着如果需要全屏模式来隐藏系统导航,您可能需要更频繁地调用 SystemChrome.setEnabledSystemUIOverlays([SystemUiOverlay.top]) 甚至不向列表提供任何元素。

    【讨论】:

    • 感谢您的回答。但这并没有解决我的问题。有关更多信息,请参阅更新后的帖子。我也试过没有.bottom。
    • @iProgram 我的第二个建议显然应该是提供一个空的List,就像这样:[]
    • @iProgram 检查这个问题:github.com/flutter/flutter/issues/20965
    • 感谢您将其发布为问题。所以看起来我现在无法隐藏它。如果其他人需要就这个问题提出问题,我已经回复了。
    猜你喜欢
    • 1970-01-01
    • 2018-03-11
    • 1970-01-01
    • 2018-10-25
    • 2018-06-20
    • 2019-07-27
    • 1970-01-01
    • 2021-08-17
    相关资源
    最近更新 更多