簡體   English   中英

如何在顫動中隱藏android的底部導航欄

[英]How to hide android's bottom navigation bar in flutter

我真的是 Flutter 和 Android 開發的新手,但是是否可以以編程方式隱藏底部導航欄(請參閱下面的哪個項目)?

在此處輸入圖像描述

試試這個: SystemChrome.setEnabledSystemUIOverlays([SystemUiOverlay.top]);

文檔

使用SystemChrome.setEnabledSystemUIOverlays([])隱藏狀態欄和導航欄。

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]);

在撰寫此答案時,此處的所有其他帖子都已過時,使用setEnabledSystemUIOverlays將給出棄用消息。

隱藏系統導航欄或狀態欄導入:

import 'package:flutter/services.dart';

並使用服務SystemChrome.setEnabledSystemUIMode

SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersiveSticky);

函數setEnabledSystemUIMode接收具有以下選項的SystemUiMode枚舉:

  • leanBack - 通過點擊顯示屏上的任意位置即可呈現帶有狀態和導航欄的全屏顯示。

  • 身臨其境- 帶有狀態和導航欄的全屏顯示,可通過顯示屏邊緣的滑動手勢呈現。

  • immersiveSticky - 帶有狀態和導航欄的全屏顯示,通過在顯示邊緣的滑動手勢可暫時呈現。

  • edgeToEdge - 在應用程序上呈現狀態和導航元素的全屏顯示。

  • manual - 聲明手動配置的 [SystemUiOverlay]s。 (查看文檔以獲取更多信息)

我想你可以用這個

SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual, overlays: [SystemUiOverlay.top]);

在你的initState()

目前此功能在顫振中存在錯誤,您可以在此處查看此問題。

https://github.com/flutter/flutter/issues/62412

通常,您需要執行以下操作:

SystemChrome.setEnabledSystemUIOverlays([SystemUiOverlay.top]); 

此方法已棄用SystemChrome.setEnabledSystemUIOverlays([SystemUiOverlay.top]);

僅顯示狀態欄

SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersiveSticky,overlays: [SystemUiOverlay.top]);

僅顯示系統導航欄

SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersiveSticky,overlays: [SystemUiOverlay.bottom]);

隱藏兩者

SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersiveSticky,
    overlays: []);

最好把它放在這樣的 runApp 方法之前

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersiveSticky, overlays:[]).then(
        (_) => runApp(MyApp()),
  );
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM