theme_util.dart 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import 'package:flutter/material.dart';
  2. import 'package:flutter/services.dart';
  3. import '../constant/color_res.dart';
  4. /// @author: bo.zeng
  5. /// @email: cnhbwds@gmail.com
  6. /// @date: 2025 2025/4/9 16:00
  7. /// @description:
  8. final ThemeData lightTheme = ThemeData(
  9. brightness: Brightness.light,
  10. scaffoldBackgroundColor: colorF5F7FD,
  11. appBarTheme: AppBarTheme(
  12. color: Colors.white,
  13. titleTextStyle: TextStyle(color: Colors.white, fontSize: 20),
  14. systemOverlayStyle: SystemUiOverlayStyle(
  15. statusBarColor: Colors.white, // 状态栏颜色
  16. statusBarIconBrightness: Brightness.dark, // 深色图标
  17. ),
  18. ),
  19. colorScheme: ColorScheme.light(
  20. primary: Colors.blue,
  21. secondary: Colors.green, // 白天模式的绿色文本
  22. ),
  23. );
  24. final ThemeData darkTheme = ThemeData(
  25. brightness: Brightness.dark,
  26. primarySwatch: Colors.blueGrey,
  27. scaffoldBackgroundColor: Colors.green,
  28. appBarTheme: AppBarTheme(
  29. color: Colors.red,
  30. titleTextStyle: TextStyle(color: Colors.white, fontSize: 20),
  31. systemOverlayStyle: SystemUiOverlayStyle(
  32. statusBarColor: Colors.red, // 透明状态栏
  33. statusBarIconBrightness: Brightness.dark, // 深色图标
  34. ),
  35. ),
  36. colorScheme: ColorScheme.dark(
  37. primary: Colors.red,
  38. secondary: Colors.black, // 黑夜模式的黑色文本
  39. ),
  40. );
  41. Future<void> setImmersiveStatusBar() async {
  42. // 设置沉浸式状态栏
  43. await SystemChrome.setEnabledSystemUIMode(SystemUiMode.edgeToEdge);
  44. // 设置状态栏和导航栏颜色
  45. SystemChrome.setSystemUIOverlayStyle(
  46. const SystemUiOverlayStyle(
  47. statusBarColor: Colors.transparent, // 状态栏透明
  48. statusBarIconBrightness: Brightness.dark, // 状态栏图标颜色(深色)
  49. systemNavigationBarColor: Colors.transparent, // 导航栏透明
  50. systemNavigationBarIconBrightness: Brightness.dark, // 导航栏图标颜色
  51. ),
  52. );
  53. }