Flutter Row布局:实现文本自动换行且右侧Widget紧跟文本
解决Flutter Row中文本换行且右侧组件紧跟的问题
把原来的Expanded替换成Flexible,并调整Row的对齐方式即可实现需求,修改后的代码如下:
Row( crossAxisAlignment: CrossAxisAlignment.start, children: [ Flexible( child: Text( 'This is very long long text that will wrap when it reaches the available space', softWrap: true, ), ), SearchIcon(), CrossIcon(), ZeroIcon(), ], )
关键说明:
- 替换Expanded为Flexible:
Expanded会强制文本占据Row内所有剩余空间,导致右侧图标被推到最右侧;Flexible默认采用FlexFit.loose适配模式,仅让文本占据自身所需宽度,当文本超出可用空间时自动换行,同时右侧图标会紧跟在文本的右侧。 - 设置CrossAxisAlignment.start:保证文本换行后,图标与文本的顶部对齐,避免图标出现垂直居中的错位情况。
- softWrap属性:
Text组件默认softWrap为true,显式声明可让代码逻辑更清晰,确保文本能正常自动换行。
内容的提问来源于stack exchange,提问作者Fran
相关产品推荐
相关产品推荐

