相关疑难解决方法(0)

如何在 Flutter 中更改主题?

所以我在这里尝试获取当前主题,无论是浅色还是深色。所以我可以相应地改变小部件颜色..但是,它不起作用,我使用 if 语句来知道它何时是深色模式..但它总是 False ..这是代码..顺便说一句,它在深色和浅色主题之间切换。 ..但是当我尝试获取当前主题..即使主题更改为黑暗.. if 语句总是显示错误...

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {

    bool darkModeOn = MediaQuery.of(context).platformBrightness == Brightness.dark;
    Color containerColor;
    if (darkModeOn == true) {
      containerColor = Colors.blueGrey;
      print("----------------");
      print("dark mode ON");
      print("----------------");
    } else {
      containerColor = Colors.deepPurple;
      print("LIGHT mode ON");
    }

    return Scaffold(
      floatingActionButton: FloatingActionButton.extended(
          onPressed: () {
            //----switch theme---
            currentTheme.switchTheme();
          },
          label: Text(
            "Switch theme",
            style: TextStyle(
            ),
          ),
        icon: …
Run Code Online (Sandbox Code Playgroud)

dart flutter flutter-layout

5
推荐指数
2
解决办法
2万
查看次数

如何在 Flutter 中监听 platformBrightness 的变化?

我正在建立一个系统,当用户将系统主题更改为暗模式时,它会更改主题,并且使用 Flutter,它运行良好!但是,当用户更改系统主题时,系统导航和状态栏不会改变它们的颜色。我在 build 方法内的主页上运行了代码,但似乎没有这样做。这是主页构建方法中的代码:

class HomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    Brightness sysBrightness = MediaQuery.of(context).platformBrightness;
    if (sysBrightness == Brightness.dark)
      Themes.setDarkSystemColors();
    else
      Themes.setLightSystemColors();

    return Scaffold(
      appBar: CustomAppBar(title: "Home"),
      drawer: CustomDrawer(),
      body: SizedBox(),
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

这是主应用程序中带有theme:和的代码darkTheme:

    return MaterialApp(
      initialRoute: '/',
      routes: routes,
      navigatorObservers: [_routeObserver],
      theme: Themes.lightTheme,
      darkTheme: Themes.darkTheme,
      debugShowCheckedModeBanner: false,
      title: 'School Life',
    );
Run Code Online (Sandbox Code Playgroud)

themes flutter

3
推荐指数
2
解决办法
2754
查看次数

检测是否从Flutter / Dart启用了iOS13黑暗模式

我正在编写适用于Android和iOS的Flutter应用,该应用将根据iOS的暗模式状态更改其样式/主题。

目前在Flutter中是否有类似MediaQuery.isDarkModeEnabled的东西?

这里有一个GitHub问题开放但是Flutter团队必须解决很多问题,所以我看不到这个实现得太早。

我可以从iOS特定的代码通道使用'traitCollection.userInterfaceStyle',但是我对使用Flutter / Dart应用程序添加特定于平台的代码不是很熟悉。目前正在研究此解决方案!

例如,某人可能拥有CupertinoPicker具有自适应颜色的:

CupertinoPicker(
    backgroundColor: isDarkModeEnabled ? Colors.black : Colors.white,
    children: items.map((thisItem) => Text(thisItem.name)).toList(),
    itemExtent: 32,
    onSelectedItemChanged: (newItem) {
        setState(() => this.item = items[newItem]);
    }
)
Run Code Online (Sandbox Code Playgroud)

ios dart flutter ios-darkmode

2
推荐指数
2
解决办法
2625
查看次数

检测操作系统深色模式是否处于活动状态

我正在寻找一种使用 Flutter 来检测操作系统深色模式是否处于活动状态的方法。我只希望我的应用程序遵循操作系统深色模式设置。我用谷歌搜索了一下,大多数主题都是关于“设置和切换”深色模式,而不是关于检测操作系统的深色模式。

detect flutter darkmode

1
推荐指数
1
解决办法
1722
查看次数

标签 统计

flutter ×4

dart ×2

darkmode ×1

detect ×1

flutter-layout ×1

ios ×1

ios-darkmode ×1

themes ×1