Hola, Amigos! На связи Владимир Зевеке, Flutter dev Amiga. Ранее я рассказывал о том, как интегрировать штрих-коды в приложение 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: <…>,
),
),
);
Таким образом мы можем изменять по своему усмотрению системные настройки яркости в приложении⚙️
Пишите в чате, если было полезно!
