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

Flutter中如何让换行后的文本保持右对齐?

解决文本换行后右对齐的问题

问题核心在于你外层的Align无法控制文本内部的换行对齐,且自定义BoxText默认大概率是左对齐,导致换行后文本左偏。同时固定的height:40会在文本换行后截断内容,建议同步调整。

修改方案

  1. 移除外层Align组件,直接给文本组件设置自身右对齐
  2. 删除Container的固定高度,避免文本换行后被裁剪
  3. 保持Flexible确保文本区域自适应剩余空间

修改后的代码:

const LrListItem({Key? key, required this.label, required this.text})
      : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Padding(
      padding: bPadding25,
      child: Container(
        decoration: BoxDecoration(
            border: Border(
          bottom: BorderSide(width: 1, color: lrDarkBlue.withOpacity(0.3)),
        )),
        child: Row(
          mainAxisAlignment: MainAxisAlignment.spaceBetween,
          crossAxisAlignment: CrossAxisAlignment.start, // 让标签与文本顶部对齐
          children: [
            SizedBox(
              width: 150,
              child: BoxText(
                text: label,
                size: 16,
                color: lrDarkBlue.withOpacity(0.3),
              ),
            ),
            Flexible(
              child: BoxText(
                text: text,
                size: 16,
                color: lrDarkBlue,
                lines: 2,
                textAlign: TextAlign.right, // 关键:设置文本自身右对齐
              ),
            ),
          ],
        ),
      ),
    );
  }

若BoxText未封装textAlign参数

直接替换为原生Text组件即可:

Flexible(
  child: Text(
    text,
    style: TextStyle(
      fontSize: 16,
      color: lrDarkBlue,
    ),
    maxLines: 2,
    textAlign: TextAlign.right,
  ),
),

补充说明

  • 移除固定高度是因为文本换行后高度会超过40,固定高度会导致内容被裁剪
  • 设置crossAxisAlignment: CrossAxisAlignment.start能让左侧标签和右侧文本顶部对齐,视觉更协调

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 02:01:10