Repository: flutter
Issue: The Text widget adds extra whitespaces
Labels: framework,f: material design,a: typography,has reproducible steps,found in release: 2.3,team-design,triaged-design

I'm not sure if this is a bug or a feature.

<!-- Thank you for using Flutter!

     If you are looking for support, please check out our documentation
     or consider asking a question on Stack Overflow:
      * https://flutter.dev/
      * https://api.flutter.dev/
      * https://stackoverflow.com/questions/tagged/flutter?sort=frequent

     If you have found a bug or if our documentation doesn't have an answer
     to what you're looking for, then fill out the template below. Please read
     our guide to filing a bug first: https://flutter.dev/docs/resources/bug-reports
-->

## Steps to Reproduce

<!-- You must include full steps to reproduce so that we can reproduce the problem. -->

Demonstrative code:

```dart
import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  final String text =
      "Placeholder text is the label for possible content in a text box.";

  final baseline = TextBaseline.ideographic;

  @override
  Widget build(BuildContext context) {
    final TextStyle style = TextStyle(
      color: Colors.black,
      fontSize: 14,
      fontWeight: FontWeight.normal,
      wordSpacing: null,
      fontStyle: FontStyle.normal,
      decorationThickness: 0,
      decoration: TextDecoration.none,
      letterSpacing: null,
      textBaseline: baseline,
      height: 1.2,
      decorationStyle: TextDecorationStyle.solid,
    );

    final invertedStyle = style.copyWith(
      backgroundColor: Colors.black,
      color: Colors.white,
    );

    final childrenWithWidgetSpan = text
        .split("")
        .map(
          (char) => WidgetSpan(
            alignment: PlaceholderAlignment.middle,
            baseline: baseline,
            child: Text(
              char,
              style: invertedStyle,
              textAlign: TextAlign.start,
              textWidthBasis: TextWidthBasis.parent,
            ),
            style: style,
          ),
        )
        .toList();

    final childrenWithTextSpan = text
        .split("")
        .map(
          (char) => TextSpan(
            text: char,
            style: invertedStyle,
          ),
        )
        .toList();

    final childrenWithJustText = text
        .split("")
        .map(
          (char) => Text(
            char,
            style: invertedStyle,
          ),
        )
        .toList();

    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        body: Center(
          child: Column(
            mainAxisSize: MainAxisSize.min,
            crossAxisAlignment: CrossAxisAlignment.start,
            children: [
              RichText(
                textWidthBasis: TextWidthBasis.parent,
                text: TextSpan(
                  text: text,
                  style: invertedStyle,
                ),
              ),
              Text.rich(
                TextSpan(
                  text: text,
                  style: invertedStyle,
                ),
              ),
              RichText(
                textWidthBasis: TextWidthBasis.parent,
                text: TextSpan(style: style, children: childrenWithTextSpan),
              ),
              RichText(
                textWidthBasis: TextWidthBasis.parent,
                text: TextSpan(style: style, children: childrenWithWidgetSpan),
              ),
              Text.rich(
                TextSpan(children: childrenWithWidgetSpan, style: style),
                style: style,
                textWidthBasis: TextWidthBasis.parent,
              ),
              Wrap(
                alignment: WrapAlignment.start,
                children: childrenWithJustText,
              ),
            ],
          ),
        ),
      ),
    );
  }
}
```

**Expected results:** <!-- what did you want to see? -->
All 6 lines should have the same width.
![image](https://user-images.githubusercontent.com/18321229/118408433-4558f080-b68e-11eb-8eda-124b426139e3.png)

**Actual results:** <!-- what did you see? -->
Using the `Text` widget adds extra whitespaces (lines 4 to 6).
Using a list of `TextSpan` children also adds extra (thinner) whitespace (line 3).

<details>
  <summary>Logs</summary>

<!-- Finally, paste the output of running `flutter doctor -v` here. -->

```
➜  ~ flutter doctor -v
[✓] Flutter (Channel stable, 2.0.6, on macOS 11.3.1 20E241 darwin-x64, locale
    en-GB)
    • Flutter version 2.0.6 at /Users/Tanase/flutter
    • Framework revision 1d9032c7e1 (2 weeks ago), 2021-04-29 17:37:58 -0700
    • Engine revision 05e680e202
    • Dart version 2.12.3

[!] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Users/Tanase/Library/Android/sdk
    • Platform android-30, build-tools 30.0.3
    • Java binary at:
      /Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home/bin/java
    • Java version Java(TM) SE Runtime Environment 18.9 (build 11.0.2+9-LTS)
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/macos#android-setup for
      more details.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.4, Build version 12D4e
    • CocoaPods version 1.10.0

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[!] Android Studio (not installed)
    • Android Studio not found; download from
      https://developer.android.com/studio/index.html
      (or visit https://flutter.dev/docs/get-started/install/macos#android-setup
      for detailed instructions).

[✓] VS Code (version 1.56.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.22.0

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-x64     • macOS 11.3.1 20E241 darwin-x64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 90.0.4430.212

! Doctor found issues in 2 categories.
```

</details>