如何在颤动中隐藏android的底部导航栏
Posted
技术标签:
【中文标题】如何在颤动中隐藏android的底部导航栏【英文标题】:How to hide android's bottom navigation bar in flutter 【发布时间】:2019-02-21 05:26:30 【问题描述】:我真的是 Flutter 和 android 开发的新手,但是否可以通过编程方式隐藏底部导航栏(请参阅下面的哪个项目)?
【问题讨论】:
【参考方案1】:试试这个:
SystemChrome.setEnabledSystemUIOverlays([SystemUiOverlay.top]);
Document
【讨论】:
好吧,我用过这个,但在那之后,我有一个空白区域。而且不能真正放任何东西。 哦,这解决了。脚手架(resizeToAvoidBottomPadding: false, appBar: new AppBar(), ); 虽然这有效,但在某些设备上,当我们触摸屏幕时,它会显示底部导航栏。猜猜我们如何解决这个问题。 SystemChrome.setEnabledSystemUIOverlays([SystemUiOverlay.top]) 不适合我。触摸屏幕时,底部栏会持续显示。 似乎flutter团队对此无动于衷。 github.com/flutter/flutter/issues/62412【参考方案2】:使用SystemChrome.setEnabledSystemUIOverlays([])
隐藏状态栏和导航栏。
【讨论】:
【参考方案3】:For 指定应用程序时可见的系统覆盖集 在跑。您可以使用以下静态方法:
SystemChrome.setEnabledSystemUIOverlays(List<SystemUiOverlay> overlays)
例子:
1 - 隐藏底部导航栏和状态栏可见
SystemChrome.setEnabledSystemUIOverlays([SystemUiOverlay.top]);
2 - 底部导航可见栏和隐藏状态栏
SystemChrome.setEnabledSystemUIOverlays([SystemUiOverlay.bottom]);
3 - 隐藏底部导航和状态栏
SystemChrome.setEnabledSystemUIOverlays([]);
4 - 让都可见
SystemChrome.setEnabledSystemUIOverlays([SystemUiOverlay.top, SystemUiOverlay.bottom]);
【讨论】:
【参考方案4】:在撰写此答案时,此处的所有其他帖子都已过时,使用 setEnabledSystemUIOverlays
将给出弃用消息。
隐藏系统导航栏或状态栏导入:
import 'package:flutter/services.dart';
并使用服务SystemChrome.setEnabledSystemUIMode
SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersiveSticky);
函数setEnabledSystemUIMode
接收SystemUiMode
枚举,它具有以下选项:
leanBack - 带有状态和导航栏的全屏显示,通过点击显示屏上的任意位置即可呈现。
沉浸式 - 带有状态和导航栏的全屏显示,可通过在显示屏边缘的滑动手势呈现。
immersiveSticky - 通过屏幕边缘的滑动手势暂时呈现状态和导航栏的全屏显示。
edgeToEdge - 在应用程序上呈现状态和导航元素的全屏显示。
manual - 声明手动配置的 [SystemUiOverlay]。 (查看文档了解更多信息)
【讨论】:
【参考方案5】:我觉得你可以用这个
SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual, overlays: [SystemUiOverlay.top]);
在你的initState()
【讨论】:
【参考方案6】:目前此功能在 Flutter 中存在错误,您可以在此处查看此问题。
https://github.com/flutter/flutter/issues/62412
通常您需要执行以下操作:
SystemChrome.setEnabledSystemUIOverlays([SystemUiOverlay.top]);
【讨论】:
以上是关于如何在颤动中隐藏android的底部导航栏的主要内容,如果未能解决你的问题,请参考以下文章