Pull to refresh

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: <…>,
    ),
  ),
   );

Готово!

Tags:
Total votes 4: ↑4 and ↓0+5
Comments1

Articles