Флаттер: как установить размер шрифта больше (больше)

TextStyle(fontSize: 16)

Есть ли способ установить размер шрифта больше обычного вместо жестко запрограммированного размера? Для Интернета:

font-size: larger
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
55
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы можете использовать размеры текста темы по умолчанию:

Text('Hi There', style: Theme.of(context).textTheme.titleLarge)

Существуют различные textTheme стили текста, например:

TextStyle? displayLarge,
TextStyle? displayMedium,
TextStyle? displaySmall,
TextStyle? headlineLarge,
TextStyle? headlineMedium,
TextStyle? headlineSmall,
TextStyle? titleLarge,
TextStyle? titleMedium,
TextStyle? titleSmall,
TextStyle? bodyLarge,
TextStyle? bodyMedium,
TextStyle? bodySmall,
TextStyle? labelLarge,
TextStyle? labelMedium,
TextStyle? labelSmall,

У каждого из вышеперечисленных Text Style есть разные font size.

Если textTheme не применяется в вашем ThemeData, будут применены значения по умолчанию.

Надеюсь, это вам поможет.

Для MaterialApp (заголовок: «Hello World», тема: ThemeData( useMaterial3: true, )) применяется textTheme по умолчанию? Спасибо

eastwater 26.04.2024 20:59

@eastwater ты wlcm.

A-E 26.04.2024 21:02

Я думаю, вы не хотите задавать размер шрифта, жестко запрограммированный в TestStyle, вот так:

TextStyle(fontSize: 16)

вместо этого вы хотите сделать вот так,

TextStyle(fontSize: larger) 

где big — переменная типа int, где установлено значение 16. Для достижения желаемой цели вы можете сделать следующее:

int xxxSmall = 1;
int xxSmall = 2;
int xSmall = 4;
int small = 8;
int medium = 12;
int large = 16;
int xLarge = 24;
int xxLarge  = 40;
int xxxLarge  = 65;

Затем вы можете использовать его в TextStyle. Но такой способ использования не является стандартным, поскольку глобально объявленные вещи не являются хорошей практикой. так что вы можете создать класс, в котором будут храниться все эти значения, и использовать эти значения через этот класс,

/// Default Spacing in App UI.
abstract class AppSpacing {
  /// The default unit of spacing
  static const double spaceUnit = 16;

  /// xxxs spacing value (1pt)
  static const double xxxs = 0.0625 * spaceUnit;

  /// xxs spacing value (2pt)
  static const double xxs = 0.125 * spaceUnit;

  /// xs spacing value (4pt)
  static const double xs = 0.25 * spaceUnit;

  /// sm spacing value (8pt)
  static const double sm = 0.5 * spaceUnit;

  /// md spacing value (12pt)
  static const double md = 0.75 * spaceUnit;

  /// lg spacing value (16pt)
  static const double lg = spaceUnit;

  /// xlg spacing value (24pt)
  static const double xlg = 1.5 * spaceUnit;

  /// xxlg spacing value (40pt)
  static const double xxlg = 2.5 * spaceUnit;

  /// xxxlg pacing value (64pt)
  static const double xxxlg = 4 * spaceUnit;
}

Теперь вы можете использовать этот экземпляр класса и указать размер шрифта TestStyle через этот класс:

TextStyle(fontSize: AppSpacing.lg)

Кроме того, вы можете создать предварительно определенный TestStyle для повторного использования.

abstract class AppTextStyle {
  static const TextStyle xs = TextStyle(fontSize: AppSpacing.xs);
  static const TextStyle sm = TextStyle(fontSize: AppSpacing.sm);
  static const TextStyle md = TextStyle(fontSize: AppSpacing.md);
  static const TextStyle lg = TextStyle(fontSize: AppSpacing.lg);
  static const TextStyle xlg = TextStyle(fontSize: AppSpacing.xlg);
}

Опять же, вы можете создать какое-нибудь расширение, которое повысит удобство использования.

extension TextStyleHelpers on TextStyle {
  TextStyle font(double value) => copyWith(fontSize: value);
}

тогда вы можете очень легко указать размер шрифта,

Theme.of(context).textTheme.headlineLarge?.font(AppSpacing.xs)

Теперь отсюда вы можете сделать гораздо больше. Вы можете создать еще одно расширение для BuildContext, где вы сможете получить доступ к этой теме и TextTheme для большего удобства использования.

extension ThemeX on BuildContext {
  ThemeData get theme => Theme.of(this);

  TextTheme get textTheme => theme.textTheme;

  TextStyle get headlineLarge => textTheme.headlineLarge!;
}

После этого вы можете использовать его вот так:

Text(
   "This is the text",
   style: context.headlineLarge!.font(AppSpacing.lg),
)

Теперь у вас есть лучшее решение для общего стиля TestStyle, хотя есть еще много жестко запрограммированных вещей, которые вам нужно сделать, но это только одна пора заняться этим, и вы также можете использовать это для других своих проектов. Так что вы придется сделать это один раз и использовать каждый раз, что будет больше сохранение времени. А также ваш код станет более читабельным и организованным.

Другие вопросы по теме