TextBaseline 的字母和表意枚举在 Flutter 中不起作用

use*_*104 6 text baseline flutter

我想我了解这些枚举是如何根据这篇文章工作的。当我使用以下代码尝试它时,它似乎不起作用。

Row(
  mainAxisAlignment: MainAxisAlignment.center,
  crossAxisAlignment: CrossAxisAlignment.baseline,
  textBaseline: TextBaseline.ideographic,
  children: <Widget>[
    Text(
      'abcdefg',
      style: TextStyle(
          fontSize: 50.0, fontWeight: FontWeight.w900),
    ),
    Text(
      'hi',
      style: TextStyle(fontSize: 15.0),
    ),
  ],
),
Run Code Online (Sandbox Code Playgroud)

但是,无论我选择用作文本基线(表意文字还是失语),结果总是相同的:

在此处输入图片说明

我希望“hi”与“abcdefg”的表意基线对齐,而不是像这样与其字母基线对齐:

在此处输入图片说明

我究竟做错了什么?

编辑:

两者在Rowwidget的上下文中应该是有区别的。我尝试删除该行textBaseline: TextBaseline.ideographic,但出现此错误:

'package:flutter/src/widgets/basic.dart': Failed assertion: line 3791 pos 15: 'crossAxisAlignment != CrossAxisAlignment.baseline || textBaseline != null': is not true.
Run Code Online (Sandbox Code Playgroud)

要求使用哪个基线必须是 Flutter 知道要对齐哪个基线的方式。

Rah*_*aee 0

我不完全知道你的问题,但我认为你的问题可以通过添加以下参数来解决:

mainAxisSize: MainAxisSize.min,
Run Code Online (Sandbox Code Playgroud)

所以我们有:

Row(
  mainAxisAlignment: MainAxisAlignment.center,
  crossAxisAlignment: CrossAxisAlignment.baseline,
  mainAxisSize: MainAxisSize.min,
  textBaseline: TextBaseline.ideographic,
  children: <Widget>[
    Text(
      'abcdefg',
      style: TextStyle(
          fontSize: 50.0, fontWeight: FontWeight.w900),
    ),
    Text(
      'hi',
      style: TextStyle(fontSize: 15.0),
    ),
  ],
),
Run Code Online (Sandbox Code Playgroud)