Flutter – ¿Cómo puedo utilizar MediaQuery.of(context).copyWith(textScaleFactor)?
En Flutter, ¿cómo puedo usar MediaQuery.of(context).copyWith(textScaleFactor:1.0) en el siguiente main.dart?
Quiero que mi aplicación sea independiente de los distintos tamaños de pantalla de iOS y Android que el usuario pueda ajustar en la configuración.
dart
return MultiProvider(
providers: <singlechildwidget>[
...providers,
],
child: DynamicTheme(
defaultBrightness: Brightness.light,
data: (Brightness brightness) {
if (brightness == Brightness.light) {
return themeData(ThemeData.light());
} else {
return themeData(ThemeData.dark());
}
},
themedWidgetBuilder: (BuildContext context, ThemeData theme) {
return MaterialApp(
debugShowCheckedModeBanner: false,
title: 'MyApp',
theme: theme,
initialRoute: '/',
onGenerateRoute: router.generateRoute,
localizationsDelegates: <><dynamic>>[
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
EasyLocalization.of(context).delegate,
DefaultCupertinoLocalizations.delegate
],
supportedLocales: EasyLocalization.of(context).supportedLocales,
locale: EasyLocalization.of(context).locale,
);
}));
davy.ai
Puedes usar
MediaQuery.of(context).copyWith(textScaleFactor:1.0)
en el métodothemedWidgetBuilder
, donde estás devolviendo el widgetMaterialApp
. Simplemente envuelve elMaterialApp
conMediaQuery
y pasa el métodocopyWith
contextScaleFactor
de 1.0. Esto asegurará que el tamaño del texto de tu aplicación se mantenga igual, independientemente de la configuración del dispositivo del usuario.Aquí tienes un ejemplo de implementación:
dart
themedWidgetBuilder: (BuildContext context, ThemeData theme) {
return MediaQuery(
data: MediaQuery.of(context).copyWith(textScaleFactor: 1.0),
child: MaterialApp(
debugShowCheckedModeBanner: false,
title: 'MiAplicación',
theme: theme,
initialRoute: '/',
onGenerateRoute: router.generateRoute,
localizationsDelegates: <><dynamic>>[
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
EasyLocalization.of(context).delegate,
DefaultCupertinoLocalizations.delegate
],
supportedLocales: EasyLocalization.of(context).supportedLocales,
locale: EasyLocalization.of(context).locale,
),
);
}