You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter 如何阻止RotatedBox组件内文本自动向右侧扩展?

Flutter RotatedBox 竖向文本溢出不生效问题解决

问题原因

RotatedBox 的布局逻辑是先完成子组件的布局计算,再对渲染结果做旋转,你当前的写法存在两个问题:

  1. Text 组件未指定 maxLines 属性,默认支持无限换行,当外层 Container 限制宽度为50时,长文本会自动折成多行,不会触发 overflow 规则
  2. 旋转后宽高属性会互换:quarterTurns: -1 等价于逆时针旋转90度,原来子组件的水平宽度会变为旋转后的竖直高度,原来子组件的竖直高度会变为旋转后的水平宽度。你限制的子组件宽度50最终会变成旋转后组件的高度,多行文本的总高度会变成旋转后组件的水平宽度,因此出现右侧多余空白的问题。

解决方法

调整尺寸限制的位置,在 RotatedBox 外层直接限制旋转后的组件尺寸,同时给 Text 加上 maxLines 属性即可:

SizedBox(
  // 宽度对应单行文本的行高,可根据你的字体大小调整,也可设置为自适应
  width: 16,
  // 你需要的竖向文本的总高度,对应旋转前Text的最大宽度
  height: 50,
  child: RotatedBox(
    quarterTurns: -1,
    child: Tooltip(
      message: "the long text message when user wants to see it",
      child: Text(
        "some long text that is too long to fit",
        overflow: TextOverflow.fade,
        // 必须指定最大行数,才会触发溢出裁剪逻辑
        maxLines: 1,
      ),
    ),
  ),
)

如果不需要硬编码宽度,也可以用 Wrap 或者 IntrinsicWidth 组件适配文本行高,避免手动指定宽度的适配问题。

内容的提问来源于stack exchange,提问作者flutter_bee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 11:39:04