Можно ли во Flutter установить themeData моего MaterialApp для использования прописных букв по умолчанию для всех текстовых значений? - PullRequest
1 голос
/ 20 февраля 2020

Я работаю над приложением, которое использует заглавные буквы на всех экранах, я думаю, что это эффективно для производства, если я смогу добавить что-то вроде этого:

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

К сожалению, я не знаю, как это сделать таким образом, другой эффективный метод будет принят. Спасибо. ПРИМЕР ПРИМЕНЕНИЯ, КОТОРЫЙ ИСПОЛЬЗУЕТ БОЛЬШОЙ ВЕРХНИЙ СЛУЧАЙ AN APPLICATION EXAMPLE THAT USES MOSTLY UPPERCASE

1 Ответ

3 голосов
/ 20 февраля 2020

Я не думаю, что это можно установить в теме, но вы можете создать этот пользовательский виджет:

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 виджет.

...