用途:诊断并修复 Flutter 文本显示问题,包括文本溢出、孤词(widows)、换行、截断、多样式 span 和文本缩放。适用于内容长度动态、多语言及无障碍设置变化下的可读、可预期文本渲染。
主要能力:先识别失败机制,再调整布局。常见机制包括:主轴 Flex 溢出(非 flex 的 Text 在 Flex 主轴获得无界约束时取固有尺寸,导致 RenderFlex overflowed);孤词(标题或段落末词单独换行);非受控截断(静默裁剪或超出预期行数而无可见截断提示);行内流断裂(Row 中多个相邻 Text 未作为连续段落流动);文本缩放破坏(系统字体放大后在固定高度容器内裁剪或把关键操作挤出屏幕)。
使用方式:在 Row 中当文本需与兄弟共享有限水平空间时,用 Flexible、Expanded、SizedBox 或 ConstrainedBox 约束竞争分支,而非给每个 Text 加约束;Column 中的 flex 改变垂直分配,不是水平溢出的默认修复。父级主轴约束无界时不要添加 flex 子项。仅在分段适用处防止孤词:非断行空格(\u00A0)可绑定空格分隔标题、标题和标注的最后两个词,勿跨语言普遍套用。截断需刻意选择:完整文案重要时允许自然换行;产品约定需截断时,显式设置 maxLines 搭配 TextOverflow.ellipsis、fade 或 clip;未确认单行裁剪可接受前不要设 softWrap: false。混排字重、颜色、内联徽标(WidgetSpan)或链接识别器时优先用 Text.rich 以继承环境和文本缩放;RichText 需自行处理 span 样式与缩放。布局依赖文案尺寸时用 TextPainter 测量:为动态 chip、画布标注或“阅读更多”组件布局 TextPainter,指定 maxWidth、方向、locale 与 TextScaler,检查渲染高度与 didExceedMaxLines。适配文本缩放:支持放大系统字体(MediaQuery.textScalerOf(context)),避免固定容器高度,改用弹性或可滚动容器。国际化:为本地化字符串预留 20%–35% 文本长度扩展,支持双向文本(TextDirection)。
验证:用最小长度文案、真实预期文案、最大长度/本地化文案(含重音与非空白长串)、放大字号(TextScaler.linear(1.5) 与 TextScaler.linear(2.0))、受限父宽度(窄屏、紧凑卡片、列表项)测试文本组件;编写 widget 测试断言无 RenderFlex 溢出、行数符合预期、截断或非断行配对按预期渲染。
限制:资料未提供安装命令、收费或平台信息;具体修复代码未在资料中给出。