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

flutter TextTheme 手机端适配验证

是的,完全适合手机端!这是Material 3 标准字体规范,专为移动设备优化。


📱 手机端适配验证

样式字号手机端适用性用途
displayLarge57⚠️ 太大,少用仅平板/折叠屏
displayMedium45⚠️ 太大,少用仅大标题页
displaySmall36✅ 适合启动页、空状态
headlineLarge32✅ 适合页面大标题
headlineMedium28✅ 适合模块标题
headlineSmall24✅ 适合卡片大标题
titleLarge22✅ 适合列表项标题
titleMedium16最常用卡片标题、小标题
titleSmall14最常用辅助标签、副标题
bodyLarge16正文标准段落文字
bodyMedium14最常用默认正文、描述
bodySmall12✅ 适合脚注、时间戳
labelLarge14✅ 适合按钮文字
labelMedium12✅ 适合小标签、徽章
labelSmall11✅ 适合最小提示、角标

🎯 手机端最佳实践

TextTheme_buildMobileTextTheme(ColorSchemecs){finalbase=TextStyle(color:cs.onSurface,inherit:true);returnTextTheme(// 手机端:Display rarely used, 缩小一点更实用displaySmall:base.copyWith(fontSize:32,// 从 36 缩小fontWeight:FontWeight.w300,),// Headline:页面标题,手机端 20-28 最舒适headlineSmall:base.copyWith(fontSize:20,// 从 24 缩小fontWeight:FontWeight.w600,),// Title:最常用,16-18 黄金区间titleMedium:base.copyWith(fontSize:16,fontWeight:FontWeight.w600,// 手机端稍粗更清晰),titleSmall:base.copyWith(fontSize:14,color:cs.onSurfaceVariant,),// Body:14-16 是手机阅读最佳字号bodyMedium:base.copyWith(fontSize:14,height:1.5,// 手机端行高更重要letterSpacing:0.25,),bodySmall:base.copyWith(fontSize:12,height:1.4,color:cs.onSurfaceVariant,),// Label:按钮不小于 14(可访问性)labelLarge:base.copyWith(fontSize:14,// 最小可点击文字fontWeight:FontWeight.w600,color:cs.primary,),);}

📏 手机端字号黄金法则

推荐字号范围:12sp - 20sp ├── 12sp:最小辅助文字(时间戳、来源) ├── 14sp:正文标准(最常用)✅ ├── 16sp:小标题、 emphasized 正文 ✅ ├── 18sp:卡片标题、列表项标题 ├── 20sp:页面标题(手机端最大推荐) └── >20sp:仅特殊场景(平板、横屏)

TextTheme字体方法库

// ========== 构建文字主题(集成 ColorScheme)==========TextTheme_buildTextTheme(bool isDarkMode,ColorSchemecs){finalbaseStyle=TextStyle(color:cs.onSurface,//inherit: true, // 跟随系统字体);returnTextTheme(// ========== Display(超大展示文字)==========// 用途:欢迎页数字、空状态图标文字、启动页标题// 特点:最大字号,轻微负字间距更紧凑displayLarge:baseStyle.copyWith(fontSize:57,fontWeight:FontWeight.w300,// 细体更优雅letterSpacing:-0.25,color:cs.onSurface,),displayMedium:baseStyle.copyWith(fontSize:45,fontWeight:FontWeight.w300,letterSpacing:0,color:cs.onSurface,),displaySmall:baseStyle.copyWith(fontSize:36,fontWeight:FontWeight.w400,letterSpacing:0,color:cs.onSurface,),// ========== Headline(页面标题)==========// 用途:页面顶部标题、模块大标题// 特点:醒目但比 Display 收敛headlineLarge:baseStyle.copyWith(fontSize:32,fontWeight:FontWeight.w400,letterSpacing:0,color:cs.onSurface,),headlineMedium:baseStyle.copyWith(fontSize:28,fontWeight:FontWeight.w400,letterSpacing:0,color:cs.onSurface,),headlineSmall:baseStyle.copyWith(fontSize:24,fontWeight:FontWeight.w500,// 加粗区分层级letterSpacing:0,color:cs.onSurface,),// ========== Title(组件标题)==========// 用途:卡片标题、列表项标题、对话框标题// 优化:添加主色强调选项titleLarge:baseStyle.copyWith(fontSize:22,fontWeight:FontWeight.w400,letterSpacing:0,color:cs.onSurface,),titleMedium:baseStyle.copyWith(fontSize:16,fontWeight:FontWeight.w500,letterSpacing:0.15,color:cs.onSurface,),titleSmall:baseStyle.copyWith(fontSize:14,fontWeight:FontWeight.w500,letterSpacing:0.1,// 优化:弱化一点,区分于 titleMediumcolor:cs.onSurfaceVariant,),// ========== Body(正文内容)==========// 用途:段落文字、说明文字、主要内容// 核心:阅读舒适度优先bodyLarge:baseStyle.copyWith(fontSize:16,fontWeight:FontWeight.w400,letterSpacing:0.5,// 宽松字间距易读height:1.5,// 行高增加可读性color:cs.onSurface,),bodyMedium:baseStyle.copyWith(fontSize:14,fontWeight:FontWeight.w400,letterSpacing:0.25,height:1.4,color:cs.onSurface,),bodySmall:baseStyle.copyWith(fontSize:12,fontWeight:FontWeight.w400,letterSpacing:0.4,height:1.3,// 优化:明确使用弱化色color:cs.onSurfaceVariant,),// ========== Label(标签、按钮、辅助文字)==========// 用途:按钮文字、标签、时间戳、提示信息// 优化:区分可点击 vs 纯辅助labelLarge:baseStyle.copyWith(fontSize:14,fontWeight:FontWeight.w500,letterSpacing:0.1,// 优化:可点击标签用主色color:cs.onSurface,),labelMedium:baseStyle.copyWith(fontSize:12,fontWeight:FontWeight.w500,letterSpacing:0.5,// 优化:纯辅助标签用弱化色color:cs.onSurfaceVariant,),labelSmall:baseStyle.copyWith(fontSize:11,fontWeight:FontWeight.w500,letterSpacing:0.5,// 优化:最弱层级,可再降透明度color:cs.onSurfaceVariant.withOpacity(0.8),),);}

⚠️ 可访问性要求(Google 规范)

场景最小字号对比度
正文14sp4.5:1
大文字 (>18sp)18sp3:1
禁用/辅助12sp3:1

你的原始配置完全符合规范,放心使用!如需针对小屏手机(<5寸)微调,可将display/headline整体缩小 10-15%。

http://www.jsqmd.com/news/626339/

相关文章:

  • 微信 Windows 版全版本历史归档:找回你曾经顺手的那个版本
  • G-Helper技术深度解析:华硕硬件控制架构揭秘与性能优化实践
  • 嵌入式轻量级命令解析库:非阻塞状态机与零拷贝设计
  • GORM中钩子了解
  • JMS, ActiveMQ 学习一则亓
  • 2026年电脑显卡故障维修权威服务商排行及选购指南:广州电脑维修键盘故障、广州蓝屏电脑维修、广州进水电脑维修、电脑维修键盘故障选择指南 - 优质品牌商家
  • 【紧急预警】传统音视频微服务架构将在2026Q3大规模失效——SITS2026原生处理标准已强制嵌入工信部信创目录
  • 用Multisim仿真LM324AJ搭建RC桥式振荡器:从起振到稳幅的完整调试记录
  • [AI应用框架/Java] Spring AI 应用开发指南<>概述、快速入门刈
  • 代码审计 | Listener —— Tomcat 内存马 回显问题 反射总结
  • 嵌入式TFTP服务器库TFTPServer深度解析与移植指南
  • 微服务架构原则
  • MindSpore 环境配置完全指南志
  • Flutter开发环境搭建避坑指南:解决‘no devices‘等常见错误的5个关键步骤
  • TIP-2026《View-Adaptive Multi-Granularity Anchor Learning for Multi-View Clustering》
  • 可控性技术人工智能系统人类监督与干预接口设计
  • 不记命令也能排障:catpaw chat 实战手册叵
  • 让 AI 代理拥有“专业技能包“:Microsoft Agent Skills袒
  • 游戏引擎物理系统:刚体动力学与碰撞检测实现
  • React 18 并发渲染实战:useTransition、Suspense 与自动批处理深度解析
  • 电离层TEC地图中添加晨昏线/昼夜转换线
  • DataServeriOS:Arduino与iOS设备的轻量级TCP控制协议库
  • 一线汽车教师实测:迈腾380TSI电气故障仿真软件,破解教学与大赛双重痛点
  • 搜索引擎中的索引构建与查询处理
  • keepalived+nginx实现高可用
  • 论文复现基于改进人工鱼群法的机器人,无人机,无人车,无人船的路径规划算法,MATLAB
  • MATLAB读取TIF文件常见错误解析:从geotiffread报错到解决方案
  • TMP117高精度温度传感器I²C驱动深度解析
  • MPU6050裸机驱动开发:寄存器配置、I²C通信与姿态解算实战
  • 如何在5分钟内为你的Minecraft服务器添加RPG技能系统