[flutter]监听系统主题改变

/ 13,848评论 / 56819阅读 / 0点赞

项目需要跟随系统主题变化,修改一些自定义组件的样式,但百度一直没找到可以监听系统主题变化的方法,而 MaterialApp 是有一个设置ThemeMode.system,使得app可以跟随系统主题变化而切换使用传入的theme和darkTheme,因此我就去看了看里面的源码,找到了监听系统主题变化的函数绑定方法。

解决

import 'dart:ui' as ui;
    ui.PlatformDispatcher.instance.onPlatformBrightnessChanged = () {
      // 设置跟随系统主题变化
      followingSystem();
    };
ui.PlatformDispatcher.instance.onPlatformBrightnessChanged = null;
if(null == ui.PlatformDispatcher.instance.onPlatformBrightnessChanged) {
    // 当前没有在监听
} else {
    // 有在监听
}
    ui.PlatformDispatcher.instance.onPlatformBrightnessChanged = () {
       fun1();
       fun2();
       fun3();
       fun4();
       ......
    };
if(ui.PlatformDispatcher.instance.platformBrightness == Brightness.dark) {
    // 系统已经转变为夜间模式
    // app跟随修改主题为夜间
} else {
    // 系统已经转变为白天模式
    // app跟随修改主题为白天
}
// 进入app时手动调用一次 followingSystem(), 然后调用 setFollowingSystem() 绑定监听函数

  void followingSystem() {
    if (ui.PlatformDispatcher.instance.platformBrightness == Brightness.dark) {
      // app跟随修改主题为夜间
    } else {
      // app跟随修改主题为白天
    }
  }

  // 设置跟随系统主题变化
  void setFollowingSystem() {
    ui.PlatformDispatcher.instance.onPlatformBrightnessChanged = () {
      followingSystem();
    };
  }
  1. EddieVag说道:

    Online casinos taya365 login are thousands of slots, live games, profitable promotions and instant wins. Try your luck in a comfortable and safe environment, enjoying the excitement at any time and from any device.

  2. KeithFug说道:

    дивитись фільми онлайн безкоштовно ua-bay.net

  3. EddieVag说道:

    Online casinos taya365 app are thousands of slots, live games, profitable promotions and instant wins. Try your luck in a comfortable and safe environment, enjoying the excitement at any time and from any device.

  4. Danielplent说道:

    https://amoxstar.com/# order amoxicillin no prescription

  5. KeithFug说道:

    фільми, що вийшли онлайн безкоштовно фільми 2024 дивитися онлайн

  6. Предлагаем услуги профессиональных инженеров офицальной мастерской.
    Еслли вы искали ремонт стиральных машин zanussi цены, можете посмотреть на сайте: ремонт стиральных машин zanussi цены
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  7. Предлагаем услуги профессиональных инженеров офицальной мастерской.
    Еслли вы искали ремонт стиральных машин zanussi цены, можете посмотреть на сайте: ремонт стиральных машин zanussi в москве
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  8. Danielplent说道:

    https://amoxstar.com/# where can i buy amoxicillin over the counter

  9. Предлагаем услуги профессиональных инженеров офицальной мастерской.
    Еслли вы искали срочный ремонт стиральных машин zanussi, можете посмотреть на сайте: ремонт стиральных машин zanussi
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  10. KennethCex说道:

    prednisone 40 mg price PredniBest can i buy prednisone from canada without a script

  11. Предлагаем услуги профессиональных инженеров офицальной мастерской.
    Еслли вы искали ремонт стиральных машин zanussi, можете посмотреть на сайте: ремонт стиральных машин zanussi сервис
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  12. KennethCex说道:

    ciprofloxacin 500mg buy online buy cipro cheap ciprofloxacin mail online

  13. Предлагаем услуги профессиональных инженеров офицальной мастерской.
    Еслли вы искали ремонт телефонов huawei цены, можете посмотреть на сайте: срочный ремонт телефонов huawei
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  14. Предлагаем услуги профессиональных инженеров офицальной мастерской.
    Еслли вы искали ремонт стиральных машин zanussi сервис, можете посмотреть на сайте: ремонт стиральных машин zanussi
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  15. RobertInpup说道:

    prednisone cost in india: PredniBest – prednisone 10mg

  16. Предлагаем услуги профессиональных инженеров офицальной мастерской.
    Еслли вы искали ремонт стиральных машин zanussi, можете посмотреть на сайте: ремонт стиральных машин zanussi
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  17. RobertInpup说道:

    cipro online no prescription in the usa: where to buy cipro online – buy cipro online without prescription

  18. Тут можно преобрести вломостойкие сейфы сейф взломостойкий

  19. Тут можно преобрести взломостойкий сейф взломостойкие сейфы цена

  20. Предлагаем услуги профессиональных инженеров офицальной мастерской.
    Еслли вы искали ремонт телефонов huawei адреса, можете посмотреть на сайте: ремонт телефонов huawei рядом
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  21. Предлагаем услуги профессиональных инженеров офицальной мастерской.
    Еслли вы искали ремонт стиральных машин zanussi цены, можете посмотреть на сайте: ремонт стиральных машин zanussi
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  22. SamuelDarse说道:

    prednisone brand name us: PredniBest – can i purchase prednisone without a prescription

  23. SamuelDarse说道:

    generic prednisone cost: Predni Best – generic prednisone 10mg

  24. Тут можно преобрести взломостойкий сейф для дома купить взломостойкие сейфы

  25. Тут можно преобрести взломостойкий сейф сейфы взломостойкие класса

  26. Тут можно преобрести взломостойкие сейфы купить взломостойкие сейфы для дома

  27. onexbet_oasa说道:

    Большие выигрыши с onexbet, присоединяйтесь и выигрывайте|Успешные ставки на спорт с onexbet, большие деньги ждут вас|Безопасные ставки с onexbet, не рискуйте сомнительными сайтами|Больше шансов на успех с onexbet, участвуйте в акциях и выигрывайте|Играйте в казино онлайн на onexbet, не упустите шанс стать миллионером|Надежный сервис onexbet, играйте без задержек и проблем|Законные ставки на onexbet, не нарушайте правила и несите ответственность|Смотрите спорт в прямом эфире на onexbet, ставьте деньги и наслаждайтесь игрой|Больше выгодных предложений на onexbet, не упустите шанс стать богаче|Уникальный опыт азартных игр в реальном времени, новый уровень азарта в онлайн казино|Следите за результатами на onexbet, получайте прибыль от своих прогнозов|Заработайте на ставках с onexbet, получайте прибыль без лишних затрат|Непревзойденная возможность заработать деньги, выигрывайте больше, чем раньше|Решаем любые вопросы и проблемы с onexbet, наши специалисты помогут вам 24/7|Уникальный дизайн и удобство на onexbet, получайте удовольствие от азарта с onexbet|Большие джекпоты на onexbet, ставьте и получайте крупные выигрыши|Зарабатывайте на ставках с onexbet, новый уровень заработка|Увеличьте свои шансы на победу с onexbet, получайте индивидуальные предложения и бонусы|Ставьте и зарабатывайте вместе с нами, успешные ставки – это реально|Профессиональная букмекерская контора onex
    one x bet registration https://arxbetdslps.com/ .

  28. Тут можно преобрести сейф взломостойкий цена сейф пожаровзломостойкие купить

  29. Danielplent说道:

    http://amoxstar.com/# order amoxicillin online uk

  30. KennethCex说道:

    cipro buy cipro online cipro online no prescription in the usa

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注