Метод textScalerOf
Метод textScalerOf виджета
MediaQuery он равен
и описывает, как система увеличивает текст.
Локально масштаб меняют через
MediaQuery.of(context).textScalercopyWith
и новый виджет MediaQuery.
Синтаксис
MediaQuery.textScalerOf(context)
Параметры
| Параметр | Описание |
|---|---|
context |
BuildContext виджета под MediaQuery.
|
Пример
Давайте выведем коэффициент масштаба для размера 16:
import 'package:flutter/material.dart';
class ScaleLabel extends StatelessWidget
{
const ScaleLabel({super.key});
@override
Widget build(BuildContext context)
{
var scaler = MediaQuery.textScalerOf(context);
var res = scaler.scale(16);
return Text('$res');
}
}
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: ScaleLabel(),
),
),
),
);
}
На экране появится число - как система масштабирует базовый размер шрифта.
Пример
Давайте применим textScaler к Text явно:
import 'package:flutter/material.dart';
class ScaledText extends StatelessWidget
{
const ScaledText({super.key});
@override
Widget build(BuildContext context)
{
var scaler = MediaQuery.textScalerOf(context);
return Text(
'12345',
textScaler: scaler,
style: const TextStyle(fontSize: 20),
);
}
}
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: ScaledText(),
),
),
),
);
}
На экране текст '12345' будет того же размера, что и остальной интерфейс системы.
Смотрите также
-
метод
copyWith,
который принимает параметр textScaler -
метод
of,
который возвращает textScaler внутриMediaQueryData -
класс
MediaQueryData,
где лежит полеtextScaler -
виджет
MediaQuery,
через который можно переопределить масштаб для поддерева