如何使Flutter应用程序的字体大小独立于设备设置?

时间:2019-12-02 16:55:02

标签: flutter settings font-size

我需要使整个应用独立于设备的字体大小设置。我发现可以为每个文本视图手动设置textScaleFactor: 1.0。对于一些Text小部件来说,这是一个很好的解决方案,但对于具有数十个Text小部件的大型应用程序来说,则不是很好。

2 个答案:

答案 0 :(得分:4)

您是对的 Oleksandr,将 textScaleFactor 设置为 1.0 并称其为一天意味着忽略用户的需求。他们要求使用更大的文字尺寸,而您却没有提供。

让它更具适应性

你可以选择最小因子和最大因子,你可以比较。

return MaterialApp(
        builder: (context, child) {
          final mediaQueryData = MediaQuery.of(context);
          final scale = mediaQueryData.textScaleFactor.clamp(1.0, 1.3);
          return MediaQuery(
            child: child,
            data: MediaQuery.of(context).copyWith(textScaleFactor: scale),
          );
        },
);

代替硬编码的textScaleFactor,我们可以给出一个受约束的系统值。

通过使用 clamp(),我们给系统 textScaleFactor 一个下限和上限。

来源:Restricting system textScaleFactor, when you have to

答案 1 :(得分:0)

首先,我必须说,使您的文字与手机设置无关是一个坏主意。它会使您的应用对残障或失明等残障用户的友好度降低。作为开发人员,您应该确保当字体大小增加时,版式具有足够的空间来渲染所有内容。但是有时候我们实际上需要固定字体大小。

您要做的就是创建Material App Builder,为整个应用程序设置Media Query属性“ textScaleFactor:1.0”。

MaterialApp(
  builder: (context, child) {
    return MediaQuery(
      child: child,
      data: MediaQuery.of(context).copyWith(textScaleFactor: 1.0),
    );

}, )

找到了解决办法here

相关问题