Flutter - 如何在一行中显示文本和图标?

Posted

技术标签:

【中文标题】Flutter - 如何在一行中显示文本和图标?【英文标题】:Flutter - How to show text and icon in one line in row? 【发布时间】:2020-09-05 23:57:11 【问题描述】:

我正在使用带有三个子小部件的行小部件: 文本 图标 文字

我希望它们都出现在水平同一级别的单行中,如果文本增加,则下降到新行。

我正在为 Row 小部件使用以下代码,但最后一个 Text 小部件未正确对齐

文本放置应从“Tap”下方开始,并且“on the right hand”未对齐

Row(
  mainAxisAlignment: MainAxisAlignment.start,
  mainAxisSize: MainAxisSize.min,
  children: <Widget>[
    Text(
      'Tap ',
      style: TextStyle(
        fontSize: 17,
      ),
    ),
    Icon(Icons.add),
    Expanded(
      child: Text(
        'on the right hand corner to start a new chat.',
        style: TextStyle(
          fontSize: 17,
        ),
      ),
    )
  ],
)

【问题讨论】:

【参考方案1】:

使用Text.richWidgetSpan 将图标放在文本中(内联)

Text.rich(
  TextSpan(
    style: TextStyle(
      fontSize: 17,
    ),
    children: [
      TextSpan(
        text: 'Tap',
      ),
      WidgetSpan(
        child: Icon(Icons.add),
      ),
      TextSpan(
        text: 'on the right hand corner to start a new chat.',
      )
    ],
  ),
)

【讨论】:

完美正是我所期待的。谢谢你

以上是关于Flutter - 如何在一行中显示文本和图标?的主要内容,如果未能解决你的问题,请参考以下文章

如何在同一行显示文本和图标

Android 通知:如何在顶行中包含额外的文本

如何在 Flutter 中实现应用栏操作文本而不是操作图标?

如何删除文本字段中图标和文本之间的间距 - Flutter?

如何将文本和社交媒体图标放在同一行

如何在 Flutter 中自定义谷歌地图标记图标