setSystemUI static method

void setSystemUI(
  1. Color color, {
  2. bool isTransparent = false,
})

🔹 Set both status bar and navigation bar color, with icon brightness adjustment.

  • Android:
    • Sets both bars' background color and icon color.
  • iOS:
    • Affects only status bar icon color (nav bar unaffected).

⚠️ Use isTransparent for full transparency (Android).

SystemUiUtils.setSystemUI(Colors.deepPurple); // purple bars, white icons
SystemUiUtils.setSystemUI(Colors.white);      // white bars, black icons
SystemUiUtils.setSystemUI(Colors.transparent, isTransparent: true);

Implementation

static void setSystemUI(Color color, {bool isTransparent = false}) {
  final Brightness iconBrightness =
      ThemeData.estimateBrightnessForColor(color) == Brightness.dark
          ? Brightness.light
          : Brightness.dark;

  final SystemUiOverlayStyle style = SystemUiOverlayStyle(
    statusBarColor: isTransparent ? Colors.transparent : color,
    statusBarIconBrightness: iconBrightness,
    statusBarBrightness: iconBrightness,
    systemNavigationBarColor: isTransparent ? Colors.transparent : color,
    systemNavigationBarIconBrightness: iconBrightness,
  );

  SystemChrome.setSystemUIOverlayStyle(style);
}