3

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

...
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(),
    );
...

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

4

1 回答 1

4

我认为不可能在主题中设置它,但你可以做的是创建这个自定义小部件:

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小部件的任何地方使用它。

于 2020-02-19T23:03:28.803 回答