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

Flutter如何实现AlertDialog内多行文本垂直排列而非水平展示

原因

Dart会自动拼接相邻的字符串字面量,你当前的代码中4段文本之间没有插入换行符,因此会全部在同一行展示。

方案1:直接添加换行符(最简实现)

在每段文本的末尾添加转义字符\n即可实现换行,修改后代码如下:

AlertDialog alert = AlertDialog(
  title: Text("Informações"),
  content: Text("P - Selvagem ou Aguti\n"
      "p - preto\n"
      "A - Permite a pigmentação\n"
      "a - Inibe a pigmentação (epistático)"),
  actions: [
    okButton,
  ],
  backgroundColor: Colors.white,
);

方案2:用Column包裹多Text(扩展性更强)

如果后续需要给每行文本单独设置样式、添加交互事件等,可以将content替换为Column组件包裹多个Text组件,注意设置mainAxisSize: MainAxisSize.min避免对话框占用多余高度,代码如下:

AlertDialog alert = AlertDialog(
  title: Text("Informações"),
  content: Column(
    mainAxisSize: MainAxisSize.min,
    crossAxisAlignment: CrossAxisAlignment.start,
    children: [
      Text("P - Selvagem ou Aguti"),
      Text("p - preto"),
      Text("A - Permite a pigmentação"),
      Text("a - Inibe a pigmentação (epistático)"),
    ],
  ),
  actions: [
    okButton,
  ],
  backgroundColor: Colors.white,
);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 02:54:04