#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());
}