Flutter-如何使用MediaQuery.of(context).copyWith(textScaleFactor)



在Flutter中,我如何在下面的main.dart中使用MediaQuery.of(context(.copyWith(textScaleFactor:1.0(

我希望我的应用程序独立于iOS和Android的各种屏幕大小,用户可以在设置中设置

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: <LocalizationsDelegate<dynamic>>[
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
EasyLocalization.of(context).delegate,
DefaultCupertinoLocalizations.delegate
],
supportedLocales: EasyLocalization.of(context).supportedLocales,
locale: EasyLocalization.of(context).locale,
);
}));

您可以使用此代码将文本比例因子限制为特定大小

MaterialApp(
builder: (BuildContext context, Widget child) {
final MediaQueryData data = MediaQuery.of(context);
return MediaQuery(
data: data.copyWith(
textScaleFactor: 1.0),
child: child,
);
},
)

另请查看此帖子:如何正确管理Flutter应用程序中的全局文本ScaleFactor?它展示了更多的代码示例

final width=MediaQuery.of(context(?。尺寸.宽度??double.nan返回屏幕的宽度。如果您对小部件的大小感兴趣,请使用LayoutBuilder。LayoutBuilder返回其父项的约束:LayoutBuilder(builder(context,constraints({return Text("${constraints.maxWidth}(;}

使用宽度和屏幕大小的一定比例来设置小部件的大小。mediaquery没有copyWith方法。

https://api.flutter.dev/flutter/widgets/MediaQuery-class.html

最新更新