setEnabledSystemUIOverlays 已弃用,不应使用。迁移到 setEnabledSystemUIMode

iDe*_*ode 17 dart flutter

我使用以下代码仅显示状态栏。

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

但它开始给我一个警告:

setEnabledSystemUIOverlays 已弃用,不应使用。迁移到 setEnabledSystemUIMode。

那么,我该如何修复它呢?

iDe*_*ode 43

使用setEnabledSystemUIMode和提供SystemUiMode.manual如下图:

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

您还可以使用SystemUiMode

  1. 隐藏两个叠加层:

    SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersiveSticky);
    
    Run Code Online (Sandbox Code Playgroud)
  2. 显示两个叠加层:

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

但是在哪里使用这个代码呢?

考虑将其放置在main()全局应用程序效果中、initState小部件特定的行为中或事件驱动操作的回调中。


小智 9

使用 setEnabledSystemUIMode 而不是 setEnabledSystemUIOverlays。例子:

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

将其更改为:

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