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

Flutter:Row组件内两个Text间加空格,SizedBox无效如何解决

在Flutter Row组件中给两个Text添加空格的解决方案

你当前的问题是在Row里放两个Text组件,想要添加水平空格但用SizedBox没效果——原因很简单:你给SizedBox设置了height:20,但Row是水平布局,主轴方向是横向,只有设置width才能产生水平间距。

解决方法一:修正SizedBox参数

把SizedBox的height改成width,就能得到你想要的固定宽度空格:

Padding(padding: EdgeInsetsDirectional.fromSTEB(24, 4, 24, 0),
         child: 
              Row(mainAxisSize: MainAxisSize.max,
                            mainAxisAlignment: MainAxisAlignment.spaceBetween,
                            children: [
                              Text(
                                'Discount',
                                style: AppTheme.of(context).subtitle2,
                              ),
                              SizedBox(width: 20,), // 此处修改为width
                              Text(
                                '₹ ${Provider.of<Cart>(context,listen:false).discountPrice}',
                                style: AppTheme.of(context).subtitle1,
                              ),
                            ],
                          ),
                        ),

解决方法二:用Spacer实现自适应空格

如果希望两个Text分别靠向Row的左右两端,自动填充中间所有空间,可以用Spacer组件:

Padding(padding: EdgeInsetsDirectional.fromSTEB(24, 4, 24, 0),
         child: 
              Row(mainAxisSize: MainAxisSize.max,
                            children: [
                              Text(
                                'Discount',
                                style: AppTheme.of(context).subtitle2,
                              ),
                              Spacer(), // 自动填充水平剩余空间
                              Text(
                                '₹ ${Provider.of<Cart>(context,listen:false).discountPrice}',
                                style: AppTheme.of(context).subtitle1,
                              ),
                            ],
                          ),
                        ),

(注:这种方式下可以去掉原来的mainAxisAlignment: MainAxisAlignment.spaceBetween,效果一致)

解决方法三:直接在Text中添加空格字符

如果只是少量空格,也可以直接在Text内容里加空格,比如:

Text('Discount    ') // 直接加多个空格
// 或者用Unicode空格字符
Text('Discount\u0020\u0020\u0020\u0020')

不过这种方式不如组件灵活,空格大小不好精确控制。

内容的提问来源于stack exchange,提问作者rudr'a rajput

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 17:15:32