Flutter中如何为RichText组件内指定文本设置左中对齐效果
解决方案
要实现text: '• '对应的圆点文本左对齐+垂直居中的效果,有两种成熟实现方案:
方案1:使用WidgetSpan指定对齐规则(推荐,适配性最强)
TextSpan本身没有独立的对齐配置,我们可以用Flutter内置的WidgetSpan包裹圆点文本,显式指定垂直对齐规则,代码示例如下:
RichText( text: TextSpan( children: <TextSpan>[ WidgetSpan( // 指定Widget和周围文本垂直居中对齐 alignment: PlaceholderAlignment.middle, child: Text('• '), ), TextSpan(text: list2[1]), ], ), ),
该方案适配单行、多行文本场景,不管后面的文本字号、行高怎么变,圆点都会自动保持和文本首行垂直居中,水平方向默认靠左,完全符合left-center的对齐要求。
方案2:调整圆点TextSpan的height属性(仅适用单行固定样式场景)
如果你的文本是固定字号的单行内容,也可以直接给圆点的TextSpan加style调整height参数适配垂直位置:
RichText( text: TextSpan( text: '• ', // 调整height值直到和后面文本垂直居中,不同字号需要对应调整参数 style: TextStyle(height: 1.2), children: <TextSpan>[ TextSpan(text: list2[1]), ], ), ),
该方案不需要嵌套WidgetSpan,但是适配性差,文本样式变动时需要重新调整height值。
内容的提问来源于stack exchange,提问作者Aquarius_Girl
相关产品推荐
相关产品推荐

