theme_config.dart 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import 'package:flutter/material.dart';
  2. import 'package:flutter/services.dart';
  3. class ThemeConfig {
  4. //亮色模式模式下的状态栏与导航栏设置 (默认黑色状态栏文本,白色导航栏)
  5. static SystemUiOverlayStyle get systemUiOverlayStyleLightThemeBlack {
  6. return SystemUiOverlayStyle.light.copyWith(
  7. statusBarColor: Colors.transparent,
  8. //顶部导航栏的状态栏背景颜色
  9. statusBarBrightness: Brightness.light,
  10. //顶部状态栏颜色模式
  11. statusBarIconBrightness: Brightness.dark,
  12. //顶部状态栏Icon与文本颜色模式
  13. systemNavigationBarDividerColor: Colors.transparent,
  14. //底部导航栏分割线颜色
  15. systemNavigationBarColor: Colors.white,
  16. //底部导航栏背景颜色
  17. systemNavigationBarIconBrightness: Brightness.dark, //底部导航栏三大金刚键的颜色模式
  18. );
  19. }
  20. //亮色模式模式下的状态栏与导航栏设置 (设置白色状态栏文本,白色导航栏)
  21. static SystemUiOverlayStyle get systemUiOverlayStyleLightThemeWhite {
  22. return SystemUiOverlayStyle.light.copyWith(
  23. statusBarColor: Colors.transparent,
  24. statusBarBrightness: Brightness.dark,
  25. statusBarIconBrightness: Brightness.light,
  26. systemNavigationBarDividerColor: Colors.transparent,
  27. systemNavigationBarColor: Colors.white,
  28. systemNavigationBarIconBrightness: Brightness.dark,
  29. );
  30. }
  31. //黑暗模式下,统一使用白色状态栏文本,黑色导航栏
  32. static SystemUiOverlayStyle get systemUiOverlayStyleDarkTheme {
  33. return SystemUiOverlayStyle.dark.copyWith(
  34. statusBarColor: Colors.transparent,
  35. statusBarBrightness: Brightness.dark,
  36. statusBarIconBrightness: Brightness.light,
  37. );
  38. }
  39. //根据上下文的亮色模式和暗色模式返回对应的 SystemUiOverlay 配置
  40. static SystemUiOverlayStyle getSystemUiOverlayStyleByTheme(BuildContext context) {
  41. late SystemUiOverlayStyle systemUiOverlayStyle;
  42. Brightness currentBrightness = MediaQuery.of(context).platformBrightness;
  43. if (currentBrightness == Brightness.dark) {
  44. systemUiOverlayStyle = systemUiOverlayStyleDarkTheme;
  45. } else {
  46. systemUiOverlayStyle = systemUiOverlayStyleLightThemeBlack;
  47. }
  48. return systemUiOverlayStyle;
  49. }
  50. }