在 Flutter 中,是否可以将我的 MaterialApp 的 themeData 设置为使用大写字母作为所有文本值的默认值?

In Flutter, is it possible to set my MaterialApp's themeData to use uppercase as default for all Text Values?

我正在开发一个在所有屏幕上都使用大写文本的应用程序,我认为如果我可以添加这样的内容,它会在生产中有效:

...
return MaterialApp(
      title: '***',
      theme: ThemeData(
        primaryColor: Color(0xFF101639),
        textTheme: Theme.of(context).textTheme.copyWith(
              body1: TextStyle(
                color: Colors.white,
                //*****{uppercase should be set here.. where it can take effects in all parts of the app}
              ),
            ),
      ),
      home: HomePage(),
    );
...

不幸的是,我不知道如何以这种方式做到这一点,另一种有效的方法将被接受。谢谢。 一个主要使用大写字母的应用程序示例

我认为无法在主题中进行设置,但您可以创建此自定义小部件:

import 'package:flutter/material.dart';

class UpperCaseText extends Text {
  UpperCaseText(
    String data, {
    Key key,
    TextStyle style,
    StrutStyle strutStyle,
    TextAlign textAlign,
    TextDirection textDirection,
    Locale locale,
    bool softWrap,
    TextOverflow overflow,
    double textScaleFactor,
    int maxLines,
    String semanticsLabel,
    TextWidthBasis textWidthBasis,
  }) : super(
          data.toUpperCase(),
          key: key,
          style: style,
          strutStyle: strutStyle,
          textAlign: textAlign,
          textDirection: textDirection,
          locale: locale,
          softWrap: softWrap,
          overflow: overflow,
          textScaleFactor: textScaleFactor,
          maxLines: maxLines,
          semanticsLabel: semanticsLabel,
          textWidthBasis: textWidthBasis,
        );
}

并在任何需要大写文本而不是 Text 小部件的地方使用它。