
Hola, Amigos! На связи Владимир Зевеке, соавтор Flutter. Много. Сегодня поделюсь пакетом screen_brightness, который помогает управлять яркостью экрана. В моём случае, этот виджет понадобился для более эффективной работы barcode.
❗️Screen_brightness работает только на реальных устройствах, на эмуляторе пакет функционировать не будет.
Перейдем к практике: в нашем приложении есть страница, которая должна быть всегда яркой на 70%. Если при переходе на неё экран тусклый, то мы должны поднять яркость до тех самых 70%.
Сделаем это в отдельном методе, который будем вызывать в initState().
double brightness = 1.0; @override void initState() { initBrightness(); super.initState(); } Future<void> initBrightness() async { brightness = await FlutterScreenWake.brightness; if (brightness < 0.7) { await FlutterScreenWake.setBrightness(0.7); } }
Перед изменением уровня яркости экрана, старый показатель мы записали в переменную brightness, чтобы вернуть пользовательские настройки яркости, когда покинем эту страницу.
return Material( child: PopScope( onPopInvoked: (value) async { await FlutterScreenWake.setBrightness(brightness); }, child: Scaffold( appBar: AppBar( backgroundColor: const Color(0xFF1A1A18), leading: InkWell( onTap: () async { await FlutterScreenWake.setBrightness(brightness); if (mounted) { Navigator.of(context).pop(); } }, <…> ), ), body: <…>, ), ), );
Готово!
