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

Flutter AppBar中Row子组件宽度设置:保证按钮完整,空间不足时裁剪标题

Flutter AppBar 按钮不被截断、仅裁剪标题的实现方案

问题根源

你现有代码的布局逻辑错误:给右侧操作按钮区域套了Expanded,反而中间的标题是无约束的固定宽度,空间不足时会优先挤压标题甚至左右两侧的按钮,和你要的效果完全相反。

修正方案

核心逻辑是:左右两侧的按钮保持固定尺寸不参与伸缩,仅给中间的标题分配剩余可用空间,空间不足时仅裁剪标题内容。
修改后的代码如下:

AppBar(
  backgroundColor: backgroundColor,
  titleSpacing: 0,
  title: Row(
    children: [
      // 左侧返回按钮:固定宽度,不参与伸缩
      _getButtonBackIOS(),
      // 中间标题:用Expanded包裹,占满左右按钮之外的剩余空间
      Expanded(
        child: Text(
          title,
          // 可选:配置溢出样式,比如显示省略号
          overflow: TextOverflow.ellipsis,
          // 可选:标题居中对齐,符合常规AppBar样式
          textAlign: TextAlign.center,
        ),
      ),
      // 右侧操作按钮:固定宽度,不参与伸缩
      Row(
        children: actions,
      ),
    ],
  ),
  actions: [],
  automaticallyImplyLeading: false,
  leading: null,
)

效果说明

  • 左侧自定义返回按钮、右侧操作按钮都会完整显示,不会被裁剪或挤压
  • 当标题内容过长时,只会在中间的Expanded区域内裁剪/显示省略号,不影响两侧控件

当前实际效果

当前显示效果

期望实现效果

期望显示效果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 01:39:01