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

Flutter实现文本两侧水平分割线问题求助

解决Flutter中Row内Divider不显示的问题

问题核心是Divider在Row布局中缺少宽度约束——Row属于水平弹性布局,直接放入Divider时,它无法获取到有效宽度空间,会被压缩至不可见状态。

只需用Expanded组件包裹两个Divider,让它们占据Row中除文本外的剩余水平空间即可,修改后的代码如下:

Widget showDivider() {
  return Padding(
    padding: const EdgeInsets.only(top: 8.0, bottom: 8.0),
    child: Row(
      mainAxisAlignment: MainAxisAlignment.center,
      crossAxisAlignment: CrossAxisAlignment.center,
      children: [
        Expanded(
          child: Divider(
            indent: 10,
            endIndent: 10,
            thickness: 5.0,
            color: Colors.black87,
          ),
        ),
        const Text('or'),
        Expanded(
          child: Divider(
            indent: 10,
            endIndent: 10,
            thickness: 5.0,
            color: Colors.black87,
          ),
        ),
      ],
    ),
  );
}

额外优化建议:

  • 将mainAxisAlignment设为center,让文本在分割线中间更对称
  • 可以移除Divider的height参数,因为Row的crossAxisAlignment已设为center,该参数对水平分割线的展示作用不大

修改后,两个Divider会自动填充文本左右两侧的可用空间,实现你需要的“文本两侧带水平分割线”的效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 21:06:23