小智 8
Amir_P的答案很好,但是在测试时,我发现它破坏了系统中深色模式和浅色模式之间的切换,因为Flutter应用程序只会在iOS上杀死并重新打开应用程序后应用系统亮度,而不是在应用程序运行时立即应用系统亮度。打开。因此,我认为应该执行以下操作,而不是包装MaterialApp在 a 中:MediaQuery
return MaterialApp(
builder: (context, child) => MediaQuery(
data: MediaQuery.of(context).copyWith(boldText: false),
child: child!,
),
);
Run Code Online (Sandbox Code Playgroud)
Material App 的属性builder专门用于覆盖此类内容 - 请参阅https://api.flutter.dev/flutter/material/MaterialApp/builder.html
感谢Josiah Mendes,我发现我原来的答案有一些意想不到的问题。更新MediaQueryData创建的内容更安全MaterialApp:
return MaterialApp(
builder: (context, child) => MediaQuery(
data: MediaQuery.of(context).copyWith(boldText: false),
child: child!,
),
);
Run Code Online (Sandbox Code Playgroud)
旧答案:
检查Text小部件后,我发现它使用boldTextOverridefromMediaQuery来更改提供给它的默认文本样式的字体粗细。所以我想你可以通过将你的MeterialApp内部包裹在 a 中MediaQuery并将 false 分配给boldText并设置为useInheritedMediaQueryon以防止它创建另一个 来覆盖它。像这样的东西:MaterialApptrueMediaQuery
return MediaQuery(
data: MediaQueryData.fromWindow(WidgetsBinding.instance!.window).copyWith(boldText: false),
child: MaterialApp(
useInheritedMediaQuery: true,
),
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2209 次 |
| 最近记录: |