【问题标题】:On changing device font, app font changes.How to restrict that?在更改设备字体时,应用程序字体更改。如何限制?
【发布时间】:2023-03-18 12:00:02
【问题描述】:

我在 react native 应用程序中使用了一种自定义字体。当用户进入手机设置并更改字体大小时,一切正常。然后在应用程序中,UI 看起来很丑陋。我已经使用 StyleSheet.create 方法在应用程序中创建所有样式,并且还为文本提供了明确的字体大小。但是即使手机设置字体大小发生变化,我的应用字体大小也会发生变化。

有没有办法限制应用字体大小的任何更改,而不管用户在手机设置中可能会做什么?

【问题讨论】:

  • 你有没有提到fontFamily 的每个Text 样式?

标签: react-native text fonts size


【解决方案1】:

您可以在 Text 组件中使用此道具 allowFontScaling={false} 停止缩放。

参考 - https://reactnative.dev/docs/text#allowfontscaling

【讨论】:

  • 但它不适用于自定义字体。我的要求是,如果我将字体大小设置为 12,那么即使我们去手机设置并更改设备字体大小,它也不应该改变。 @dhruv soni
  • 我遇到了同样的问题,我用这个道具来达到同样的效果。它一直对我有用。你能在这里发布你的文本组件吗?以及其他一些细节,例如您的设备类型,它是 Android 还是 iOS。以及操作系统版本
【解决方案2】:

或者您可以将其添加到您的主应用 index.js 文件中

// Override Text scaling
if (Text.defaultProps) {
  Text.defaultProps.allowFontScaling = false;
} else {
  Text.defaultProps = {};
  Text.defaultProps.allowFontScaling = false;
}

// Override Text scaling in input fields
if (TextInput.defaultProps) {
  TextInput.defaultProps.allowFontScaling = false;
} else {
  TextInput.defaultProps = {};
  TextInput.defaultProps.allowFontScaling = false;
}

【讨论】:

    【解决方案3】:

    我能够在每个页面中使用以下代码来解决这个问题

    constructor() {
        super();
        if (Text.defaultProps == null) Text.defaultProps = {};
           Text.defaultProps.allowFontScaling = false;
    }
    
    

    希望它也可以帮助其他人。

    【讨论】:

      猜你喜欢
      • 2013-10-16
      • 2015-12-19
      • 1970-01-01
      • 2017-06-21
      • 2012-05-23
      • 2011-11-20
      • 2015-09-06
      • 1970-01-01
      • 2013-05-01
      相关资源
      最近更新 更多