Flutter主题(暗与亮)

6tqwzwtp  于 2023-01-27  发布在  Flutter
关注(0)|答案(1)|浏览(144)

我正在工作的应用程序,包含两种模式,黑暗和光明的主题,我用扩展来检查他们之间显示不幸。

检查主题模式的扩展

import 'package:flutter/material.dart';

extension DarkMode on BuildContext {
  bool get isDarkMode {
    final brightness = MediaQuery.of(this).platformBrightness;
    return brightness == Brightness.dark;
  }
}

我还有一个单独的类,包含黑暗主题和光明主题

应用程序主题类

class AppTheme {
  
  static final lightTheme = ThemeData(
    // My light theme
  );
  static final darkTheme = ThemeData(
    // My dark theme
  );

}

我在材料应用程序中输入了这些代码

MaterialApp(
        theme: AppTheme.lightTheme,
        darkTheme: AppTheme.darkTheme,
        themeMode: ThemeMode.system,
        // ...
      ),

现在,当您从电话系统更改mod时,事情会正常工作,主题会完全更改,如下所示:

problem现在是当你选择主题,或者更确切地说,当你把光主题,主题不能正常工作.我把一个图像:
一切都应该改变到一个轻的主题,在以前的视频,但它没有发生

MaterialApp(
        theme: AppTheme.lightTheme,
        darkTheme: AppTheme.darkTheme,
        //themeMode: ThemeMode.system,
        themeMode: ThemeMode.light,
        // ...
      ),

我想知道什么是错的,我如何才能解决这个问题,使一切正常工作时,切换每个主题。

57hvy0tb

57hvy0tb1#

尝试在DarkMode扩展中检查Theme.of(context).brightness而不是MediaQuery.of(this).platformBrightness

相关问题