[flutter]监听系统主题改变

/ 13评论 / 747阅读 / 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. uPVC pipe说道:

    تم تصميم تركيبات المصنع من البولي فينيل كلوريد (uPVC) مع الاهتمام الدقيق بالتفاصيل ، مما يضمن اتصالات آمنة ومحكمة تقلل من مخاطر التسرب أو الأعطال. إيليت بايب Elite Pipe

  2. OMnhoGPq说道:

    1993; 8 1835 1836 will propecia work on hairline Though, I believe that the highest level of masculinity can only be achieved by daily routine and ritual

  3. escanty说道:

    Eli should have seen the corner levitra se vende en farmacias

  4. Well, inside, the Ford Escort GT was fairly fun too.

    Thee first-ever Ford Escort was laujched in 1986, the Ford Escort MK1, which offered
    drivers one hundred ten mph. Drivers may take pleasure in air controls, a cassette player and a radio.
    “We heard he was air lifted, and we heard he had passed. Fortunately the plane landed safely in Tel Aviv about four hours after the unique name was made to air site visitors management about a bomb, and just below 10 hours after departing New York. While flying over Spain, the EL AL pilots knowledgeable air traffic control concerning the bomb risk, which is when the state of affairs was escalated. Using the SM300, shoreside operators had remote situational consciousness and had been able to exhibit the capabilities of remote command and control of the vessel, her operating techniques and flight deck in a reside marine setting. With many people evaluating the 34-yr-old pop star to a personality from “The Hunger Games,
    ” it turns out the oversized Schiaparelli hute couture gown she wore wwas the rationale she wanted a Marine to accompany her in the primary place. Onee of the extra notable moments from Inauguration Day was Lady Gaga’s hiughly effecttive rendition of tthe “The
    Star-Spangled Banner.” But it surely was her outfit and hher Marine escort that aldo went viral that day.

    my blog … דירה דיסקרטית ברחובות

  5. escanty说道:

    Primary SjГ¶gren syndrome clinical and immunologic disease patterns in a cohort of 400 patients generic levitra canada pharmacy 36 Recruitment maneuvers attempt to increase the amount of aerated lung tissue to improve gas exchange

  6. embeway说道:

    The microarray data indicated that both PDGFRО± and PDGFRОІ were upregulated in the IGF IR independent, recurrent tumors compared to the IGF IR dependent, primary tumors 14 buying cialis online forum

  7. The very next time I read a blog, I hope that it doesnt disappoint me just as much as this one. After all, I know it was my choice to read, however I truly believed you would have something interesting to talk about. All I hear is a bunch of crying about something you can fix if you werent too busy seeking attention.

  8. Coikemn说道:

    Of can caffeine lower blood sugar course, there are basically all newly ascended monks buy generic cialis online safely Can we take ovasitol while being on birth control

  9. 猫可以多久不吃东西?

发表回复

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