如何在flutter中隐藏android的底部导航栏

Ben*_*abo 5 android dart flutter flutter-layout

我在Flutter和Android开发人员中确实是新手,但是是否可以通过编程方式隐藏底部的导航栏(请参阅下面的内容)?

在此处输入图片说明

cod*_*der 18

在撰写此答案时,此处的所有其他帖子都已过时,使用setEnabledSystemUIOverlays将给出弃用消息。

隐藏系统导航栏或状态栏导入:

import 'package:flutter/services.dart';
Run Code Online (Sandbox Code Playgroud)

并使用服务SystemChrome.setEnabledSystemUIMode

SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersiveSticky);
Run Code Online (Sandbox Code Playgroud)

该函数setEnabledSystemUIMode接收SystemUiMode具有以下选项的 Enum:

  • LeanBack - 全屏显示,通过点击显示屏上的任意位置即可显示状态和导航栏。

  • 沉浸式- 全屏显示,通过在显示屏边缘滑动手势即可呈现状态和导航栏。

  • immersiveSticky - 全屏显示,状态和导航栏可通过显示屏边缘的滑动手势暂时呈现。

  • edgeToEdge - 全屏显示,其中状态和导航元素在应用程序上呈现。

  • Manual - 声明手动配置的 [SystemUiOverlay]。(查看文档以获取更多信息)


Gok*_* KP 6

使用SystemChrome.setEnabledSystemUIOverlays([])隐藏状态栏和导航栏。


Mah*_*eja 6

For 指定在应用程序运行时可见的系统覆盖集。您可以使用以下静态方法:

  SystemChrome.setEnabledSystemUIOverlays(List<SystemUiOverlay> overlays)
Run Code Online (Sandbox Code Playgroud)

例子 :

1 -隐藏底部导航栏和静止状态栏可见

SystemChrome.setEnabledSystemUIOverlays([SystemUiOverlay.top]);
Run Code Online (Sandbox Code Playgroud)

2 - 对于静止底部导航可见栏和隐藏状态栏

SystemChrome.setEnabledSystemUIOverlays([SystemUiOverlay.bottom]);
Run Code Online (Sandbox Code Playgroud)

3 -隐藏底部导航和状态栏

SystemChrome.setEnabledSystemUIOverlays([]);
Run Code Online (Sandbox Code Playgroud)

4 - 使两者都可见

 SystemChrome.setEnabledSystemUIOverlays([SystemUiOverlay.top, SystemUiOverlay.bottom]);
Run Code Online (Sandbox Code Playgroud)


小智 5

尝试这个: SystemChrome.setEnabledSystemUIOverlays([SystemUiOverlay.top]);

文献

  • SystemChrome.setEnabledSystemUIOverlays([SystemUiOverlay.top]) 对我不起作用。触摸屏幕时,底部栏会持续出现。 (4认同)
  • 哦,这就解决了。Scaffold( resizeToAvoidBottomPadding: false, appBar: new AppBar(), ); (3认同)

the*_*shy 5

我想你可以用这个

SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual, overlays: [SystemUiOverlay.top]);
Run Code Online (Sandbox Code Playgroud)

在你的initState()