setEnabledSystemUIOverlays is deprecated and shouldn't be used. Migrate to setEnabledSystemUIMode

Viewed 6018

I was using the following code to show only status bar.

SystemChrome.setEnabledSystemUIOverlays([
  SystemUiOverlay.top
])

but it started giving me a warning:

setEnabledSystemUIOverlays is deprecated and shouldn't be used. Migrate to setEnabledSystemUIMode.

So, how do I fix it?

3 Answers

Use setEnabledSystemUIMode and provide SystemUiMode.manual as shown below:

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

You can also use SystemUiMode

  1. Hide both overlays:

    SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersiveSticky);
    
  2. Show both overlays:

    SystemChrome.setEnabledSystemUIMode(SystemUiMode.edgeToEdge);
    

Use setEnabledSystemUIMode instead of setEnabledSystemUIOverlays. Example:

  SystemChrome.setEnabledSystemUIOverlays([SystemUiOverlay.bottom, SystemUiOverlay.top]);

change it to:

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

Most updated way:

SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersive);

It doesn't show up again after touching the screen

Related