如何禁用由 iOS Flutter 辅助功能设置设置的粗体文本?
How to disable Bold Text set by iOS Accessibility setting in Flutter?
我知道我不应该禁用设备上设置的任何文本和粗体设置,但我有理由这样做。我通过在全局级别将 textScaleFactor 设置为 1 来禁用文本大小。但这并不能避免用户设置也会更改文本大小的粗体文本选项。我如何覆盖该功能,即使用户在设备上设置它也不会对应用程序产生影响?我已经尝试使用 TextStyle 在文本项上设置 fontweitgh,但这也不会停止加粗。
检查 Text
小部件后,我发现它使用 MediaQuery
中的 boldTextOverride
来更改提供给它的默认文本样式的字体粗细。所以我想你可以通过将 MeterialApp
包裹在 MediaQuery
中并将 false 分配给 boldText
并将 MaterialApp
上的 useInheritedMediaQuery
设置为 [=19= 来覆盖它] 以防止它创建另一个 MediaQuery
。像这样:
return MediaQuery(
data: MediaQueryData.fromWindow(WidgetsBinding.instance!.window).copyWith(boldText: false),
child: MaterialApp(
useInheritedMediaQuery: true,
),
);
我知道我不应该禁用设备上设置的任何文本和粗体设置,但我有理由这样做。我通过在全局级别将 textScaleFactor 设置为 1 来禁用文本大小。但这并不能避免用户设置也会更改文本大小的粗体文本选项。我如何覆盖该功能,即使用户在设备上设置它也不会对应用程序产生影响?我已经尝试使用 TextStyle 在文本项上设置 fontweitgh,但这也不会停止加粗。
检查 Text
小部件后,我发现它使用 MediaQuery
中的 boldTextOverride
来更改提供给它的默认文本样式的字体粗细。所以我想你可以通过将 MeterialApp
包裹在 MediaQuery
中并将 false 分配给 boldText
并将 MaterialApp
上的 useInheritedMediaQuery
设置为 [=19= 来覆盖它] 以防止它创建另一个 MediaQuery
。像这样:
return MediaQuery(
data: MediaQueryData.fromWindow(WidgetsBinding.instance!.window).copyWith(boldText: false),
child: MaterialApp(
useInheritedMediaQuery: true,
),
);