6 способов скрыть строку состояния во Flutter: подробное руководство

В приложении Flutter строка состояния в верхней части экрана предоставляет важную информацию, такую ​​как уровень сигнала, уровень заряда батареи и время. Однако в некоторых случаях вам может потребоваться скрыть строку состояния, чтобы создать более захватывающий пользовательский интерфейс или настроить внешний вид приложения. В этой статье мы рассмотрим шесть различных методов скрытия строки состояния во Flutter, а также примеры кода для каждого подхода.

Метод 1: PreferredSizeWidget
Один из способов скрыть строку состояния — использовать PreferredSizeWidget. Этот виджет позволяет вам определить собственный размер AppBar приложения, включая нулевую высоту, эффективно скрывая строку состояния.

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: PreferredSize(
          preferredSize: Size.fromHeight(0),
          child: AppBar(),
        ),
        body: Container(),
      ),
    );
  }
}

Метод 2: SystemChrome
Другой подход — использовать класс SystemChrome, предоставленный Flutter. Установив для SystemUiOverlayStyleзначение SystemUiOverlayStyle(statusBarColor: Colors.transparent), вы можете скрыть строку состояния.

import 'package:flutter/services.dart';
void main() {
  SystemChrome.setSystemUIOverlayStyle(
    SystemUiOverlayStyle(statusBarColor: Colors.transparent),
  );
  runApp(MyApp());
}

Метод 3: FlutterWindow
Вы также можете скрыть строку состояния, используя класс FlutterWindow. Установив SystemChrome.setEnabledSystemUIOverlays([]), вы можете скрыть как строку состояния, так и панель навигации.

import 'package:flutter/services.dart';
void main() {
  WidgetsFlutterBinding.ensureInitialized();
  SystemChrome.setEnabledSystemUIOverlays([]);
  runApp(MyApp());
}

Метод 4: FullscreenMode
Класс FullscreenMode Flutter предоставляет удобный способ скрыть строку состояния. Вызвав FullscreenMode.enable(), вы можете скрыть строку состояния и развернуть приложение в полноэкранном режиме.

import 'package:flutter/services.dart';
void main() {
  FullscreenMode.enable();
  runApp(MyApp());
}

Метод 5: SystemUiOverlayMixin
Класс SystemUiOverlayMixin позволяет скрыть строку состояния, расширив StatefulWidgetи смешав его с классом SystemUiOverlayMixin. Этот метод полезен, если вы хотите скрыть строку состояния для определенного экрана или виджета.

import 'package:flutter/services.dart';
class MyWidget extends StatefulWidget {
  @override
  _MyWidgetState createState() => _MyWidgetState();
}
class _MyWidgetState extends State<MyWidget> with SystemUiOverlayMixin {
  @override
  void initState() {
    super.initState();
    SystemChrome.setEnabledSystemUIOverlays([]);
  }
  @override
  Widget build(BuildContext context) {
    return Container();
  }
}

Метод 6: Службы Flutter
Наконец, вы можете использовать метод SystemChrome.setEnabledSystemUIOverlays([])из пакета Flutter Services, чтобы скрыть строку состояния.

import 'package:flutter/services.dart';
void main() {
  SystemChrome.setEnabledSystemUIOverlays([]);
  runApp(MyApp());
}

В этой статье мы рассмотрели шесть различных способов скрыть строку состояния в приложении Flutter. Каждый подход обеспечивает гибкость и может использоваться в различных сценариях. Реализуя эти методы, вы можете создать более захватывающий пользовательский интерфейс или настроить внешний вид вашего приложения Flutter.

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