Home > Software design >  Flutter Status Bar transparent
Flutter Status Bar transparent

Time:03-10

enter image description here

How can I make the status and the option bar (on the bottom) transparent?

I tried many thinks but its still black with white text

Here is the code that I already implemented:

Future main() async {
  WidgetsFlutterBinding.ensureInitialized();
...
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
      systemStatusBarContrastEnforced: true,
      statusBarColor: Colors.transparent,
      systemNavigationBarColor: Colors.transparent,
      systemNavigationBarDividerColor: Colors.transparent,
      systemNavigationBarIconBrightness: Brightness.light,
      statusBarIconBrightness: Brightness.light));

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

runApp(...)

and in my Material app:

return MaterialApp.router(
      theme: ThemeData(
        appBarTheme: AppBarTheme(
            //systemOverlayStyle: SystemUiOverlayStyle.light,
            backgroundColor: Colors.transparent),
      ),
      color: Colors.transparent,
...

I know that AppBar and status bar is not the same (just wanted to include it anyway).
Thanks so much in advance.

CodePudding user response:

Assuming hiding is ok:

import 'package:flutter/services.dart';

Hide Everything:

SystemChrome.setEnabledSystemUIMode(SystemUiMode.leanBack);

Hide only bottom:

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

Bring them back:

  @override
  void dispose() {
    super.dispose(); 
    SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual, overlays: SystemUiOverlay.values);  // to re-show bars
  }

credit to this answer.

CodePudding user response:

I recently struggled with this too.

My Solution was

SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
      statusBarColor: Colors.transparent,
      systemNavigationBarColor: Colors.transparent,
systemNavigationBarIconBrightness: Brightness.light
));
  

In my case, safearea was interfering with the changes which made it still show black with white text. I would advice you test on a physical device too.

  • Related