Flutter system_theme

system_theme 是一个 Flutter 插件,用于获取当前系统主题信息。

支持的平台:Android 10+、iOS、Web、MacOS 10.4+、Windows 10+ 和 XBox、Linux GTK 3+。

获取系统强调色

final accentColor = SystemTheme.accentColor.accent;

重新加载强调色

await SystemTheme.accentColor.load();

在运行应用之前加载颜色

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await SystemTheme.accentColor.load();
  runApp(MyApp());
}

配置备用强调色

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  SystemTheme.fallbackColor = const Color(0xFF865432);
  await SystemTheme.accentColor.load();
  runApp(MyApp());
}

监听系统强调色的变化

SystemTheme.onChange.listen((event) {
  debugPrint('Accent color changed to ${event.accentColor}');
});

builder 组件

使用 SystemThemeBuilder 小部件监听系统强调色的变化

SystemThemeBuilder(builder: (context, accent) {
  return ColoredBox(color: accent.accentColor);
});

检查是否支持强调色

import 'package:flutter/foundation.dart' show defaultTargetPlatform;
void main() {
  final supported = defaultTargetPlatform.supportsAccentColor;
  print('Accent color is: ${supported ? 'supported' : 'not supported'} on the current platform');
}

本文作者:Maeiee

本文链接:Flutter system_theme

版权声明:如无特别声明,本文即为原创文章,版权归 Maeiee 所有,未经允许不得转载!


喜欢我文章的朋友请随缘打赏,鼓励我创作更多更好的作品!