Скрыть панель состояния Android в приложении Flutter

Как я могу скрыть строку состояния Android в приложении Flutter?

Строка состояния Android

Ответ 1

SystemChrome.setEnabledSystemUIOverlays([]) должен делать то, что вы хотите.

Вы можете вернуть его обратно с помощью SystemChrome.setEnabledSystemUIOverlays(SystemUiOverlay.values).

Импортируйте это используя

import 'package:flutter/services.dart';

Ответ 2

Вы можете использовать SystemChrome.setEnabledSystemUIOverlays([]) чтобы скрыть, и SystemChrome.setEnabledSystemUIOverlays(SystemUiOverlay.values) чтобы вернуть его снова.

Тем не менее, будет небольшая серая область, и сейчас это не исправлено. Когда строка состояния скрыта, высота панели приложения остается неизменной.

Смотрите проблему с github: https://github.com/flutter/flutter/issues/14432

Ответ 3

Этот комментарий от Джоны Уильямс также может быть полезен в некоторых ситуациях https://github.com/flutter/flutter/issues/24472#issuecomment-440015464, если вы не хотите, чтобы цвет строки состояния был переопределен AppBar.

Вы не можете предоставить цвет строки состояния для панели приложения, но вы можете создать свой собственный аннотированный регион. Сейчас это не очень интуитивно понятно, но вы можете использовать sized: false чтобы переопределить дочернюю аннотированную область, созданную панелью приложения.

Где-то, возможно, в детстве на эшафоте

Scaffold(
  body: AnnotatedRegion<SystemUiOverlayStyle>(
    value: const SystemUiOverlayStyle(...),
    sized: false,
    child: ...
  )
);

Обратите внимание, что не все версии Android поддерживают цвет строки состояния или яркость значков. См. Документацию по SystemUiOverlayStyle для предупреждений.

Ответ 4

Вы можете добавить приведенный ниже код в свою основную функцию, чтобы скрыть строку состояния.

SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
  statusBarColor: Colors.transparent,
));

Ответ 5

Перейдите к AndroidManifest.xml и используйте эту тему

android:theme="@android:style/Theme.NoTitleBar.Fullscreen"