Полноэкранный режим флаттера: ошибка system_chrome.dart

#flutter #debugging #flutter-layout

Вопрос:

Я работаю над своим приложением flutter и хочу отобразить его в полноэкранном режиме.

 import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

void main() {
  SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual, overlays: []);
  runApp(const MyApp());
}
 

Я использую systemChrome в основном файле.dart, но когда я отлаживаю свой код, файл «system_chrome.dart» открывается с этой ошибкой:

     } else {
      assert(mode == SystemUiMode.manual amp;amp; overlays != null);
      await SystemChannels.platform.invokeMethod<void>(
        'SystemChrome.setEnabledSystemUIOverlays',
        _stringify(overlays!),
      );
    }
 

Если я использую systemChrome.setEnabledSystemUIMode(SystemUiMode.manual, наложения: []); в каждом методе сборки моих страниц по отдельности код отлаживается без проблем.

Заранее благодарю вас!

Ответ №1:

Вы устанавливаете его слишком рано — до того, как фреймворк Flutter будет запущен.

Вы можете позвонить WidgetsFlutterBinding.ensureInitialized() , чтобы запустить и запустить фреймворк Flutter, прежде чем вызывать свой метод.

В принципе, измените свой main() на этот:

 void main() {
  WidgetsFlutterBinding.ensureInitialized(); // add this line
  SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual, overlays: []);
  runApp(MyApp());
}