当前位置: 首页 > news >正文

唐山cms模板建站南昌网站优化

唐山cms模板建站,南昌网站优化,自媒体服务平台,李洋网站建设基本概念 MediaQuery.platformBrightnessOf(context) 用于获取当前操作系统的亮度模式,而不是应用的主题模式。 返回值Brightness.light:系统当前是亮色模式Brightness.dark:系统当前是暗色模式 基本用法 // 获取系统亮度 Brightness sys…

基本概念

MediaQuery.platformBrightnessOf(context) 用于获取当前操作系统的亮度模式,而不是应用的主题模式。

返回值

· Brightness.light:系统当前是亮色模式
· Brightness.dark:系统当前是暗色模式

基本用法

// 获取系统亮度
Brightness systemBrightness = MediaQuery.platformBrightnessOf(context);// 判断是否是暗色模式
bool isSystemDark = systemBrightness == Brightness.dark;print('系统亮度模式: $systemBrightness'); // Brightness.light 或 Brightness.dark

与主题提供的区别

方法 来源 用途
MediaQuery.platformBrightnessOf(context) 操作系统设置 获取系统当前的亮度模式
Theme.of(context).brightness 应用主题 获取应用当前的主题亮度
Provider.of(context).isDarkMode 用户选择 获取用户选择的主题状态

实际应用场景

  1. 根据系统亮度设置UI

Widget build(BuildContext context) {Brightness systemBrightness = MediaQuery.platformBrightnessOf(context);bool isSystemDark = systemBrightness == Brightness.dark;return Container(color: isSystemDark ? Colors.black : Colors.white,child: Text('当前系统是${isSystemDark ? "暗色" : "亮色"}模式',style: TextStyle(color: isSystemDark ? Colors.white : Colors.black,),),);
}
  1. 系统导航栏适配
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(systemNavigationBarColor: MediaQuery.platformBrightnessOf(context) == Brightness.dark ? Colors.black : Colors.white,systemNavigationBarIconBrightness: MediaQuery.platformBrightnessOf(context) == Brightness.dark ? Brightness.light : Brightness.dark,),
);
  1. 跟随系统主题的组件
Widget build(BuildContext context) {final systemBrightness = MediaQuery.platformBrightnessOf(context);return Icon(Icons.brightness_auto,color: systemBrightness == Brightness.dark ? Colors.white : Colors.black,);
}

结合用户主题选择的完整方案

Widget build(BuildContext context) {final themeProvider = Provider.of<ThemeProvider>(context);final systemBrightness = MediaQuery.platformBrightnessOf(context);// 确定最终主题:如果用户选择"跟随系统",就用系统亮度final bool actualIsDarkMode;if (themeProvider.themeMode == ThemeMode.system) {actualIsDarkMode = systemBrightness == Brightness.dark;} else {actualIsDarkMode = themeProvider.themeMode == ThemeMode.dark;}// 应用主题设置SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(systemNavigationBarColor: actualIsDarkMode ? Colors.black : Colors.white,systemNavigationBarIconBrightness: actualIsDarkMode ? Brightness.light : Brightness.dark,),);return Scaffold(backgroundColor: actualIsDarkMode ? Colors.black : Colors.white,// ... 其他代码);
}

注意事项

  1. 实时性:系统亮度改变时会自动重建widget
  2. 平台支持:在所有平台都有效
  3. 性能:调用成本很低,可以放心在build方法中使用
  4. 与Theme的区别:不要和Theme.of(context).brightness混淆

常见错误用法

// ❌ 错误:混用系统亮度和主题亮度
SystemUiOverlayStyle(systemNavigationBarColor: MediaQuery.platformBrightnessOf(context) == Brightness.dark ? Colors.black : Colors.white,systemNavigationBarIconBrightness: Theme.of(context).brightness == Brightness.dark  // 混用了!? Brightness.light : Brightness.dark,
)

最佳实践

// 在需要根据系统设置(而不是应用主题)调整UI时使用
final systemBrightness = MediaQuery.platformBrightnessOf(context);// 在需要根据用户最终选择的主题调整UI时,使用统一的判断逻辑
final actualTheme = themeProvider.themeMode == ThemeMode.system? MediaQuery.platformBrightnessOf(context): (themeProvider.themeMode == ThemeMode.dark ? Brightness.dark : Brightness.light);

总结:MediaQuery.platformBrightnessOf(context) 主要用于获取系统级别的亮度设置,适合需要跟随系统外观的场景。

http://www.dtcms.com/a/517195.html

相关文章:

  • 年化454.23%,最大回撤6.97%,加上了每笔订单的交易细节,系统及策略代码已发布
  • 企业招聘新趋势:「AI面试」如何破解在线作弊难题?
  • 人工智能风险与伦理(1)
  • 做网站能赚到钱吗深圳优化怎么做搜索
  • 怎么编辑网站甘肃住房城乡建设厅网站
  • 【仓颉语言】原生智能、全场景与强安全的设计哲学
  • vue使用d3实现图片的缩放、拖动、添加/删除标记等功能
  • 云南建站专业网站建设模块
  • 心悦dnf免做卡网站淘宝客网站如何做
  • ROS 学习
  • 《信息系统项目管理师》案例分析题及解析模拟题3
  • 深圳网络科技公司排名10深圳网站优化企业
  • 开发一个企业网站需要多少钱杭州 城西 做网站
  • 宁夏建设厅网站领导怎么做网站关键词库排名
  • 企业网站备案流程品牌建设措施
  • 北京网站优化体验软件技术专业介绍
  • 【Windows10】开机自启VMware workstation16
  • 功能型网站建设时间哈尔滨做平台网站平台公司哪家好
  • 基于改进UNet的脑电信号去噪方法研究
  • 中企动力 35 做网站flash网站尺寸
  • 番禺区网站建设哪里有网页设计与制作报告书
  • Linux-权限与开发工具
  • 网站空间多大wordpress更换主机
  • 重庆潼南网站建设全球华设计大奖
  • linux学习笔记(51)Redis发布订阅 主从复制 缓存 雪崩
  • 品牌建设助力高质量发展seo排名是什么意思
  • 软考 系统架构设计师系列知识点之杂项集萃(178)
  • 【开题答辩全过程】以短视频推荐系统的设计与实现为例,包含答辩的问题和答案
  • GPTBots 工作流:让AI从“会说“到“会做“的技术演进引言:企业AI化的瓶颈在哪里?
  • 基于跨临界CO2热力循环除霜过程