react native 处理iOS和安卓系统文字

非常简单的几步 让 react native app不随系统文字变化的处理

ios 处理方法如下 :

  1. 新增addCustomProps.js (位置随意放到项目目录, 只要路径引用的到)
    下面是 addCustomProps.js 的内容

/**
 * 添加组件的的自定义属性
 * @param WrapComponent 组件
 * @param customProps 默认属性
 */
export default function addCustomProps(WrapComponent, customProps) {
    const componentRender = WrapComponent.prototype.render
    const componentDefaultProps = WrapComponent.prototype.constructor.defaultProps
    WrapComponent.prototype.constructor.defaultProps = {
        ...componentDefaultProps,
        ...customProps
    }
    WrapComponent.prototype.render = function render() {
        const oldProps = this.props

        this.props = {
            ...this.props,
            style: [customProps.style, oldProps.style]
        }
        return componentRender.apply(this)
    }
}
  1. 在你app的入口文件里加上如下内容 (⚠️注意 是入口文件 ,否则可能不起作用)
import React, { Component } from 'react'
import { Text, TextInput } from 'react-native'

// 处理iOS系统文字
addCustomProps(Text, {allowFontScaling: false});
addCustomProps(TextInput, {allowFontScaling: false});

ios 端完成, 你可以试着修改系统的文字大小实验

android 处理方法如下 :

在 MainApplication.java 文件中加入如下代码:

import android.content.res.Configuration;
import android.content.res.Resources;

  @Override
  public void onConfigurationChanged(Configuration newConfig) {
    if (newConfig.fontScale != 1)//非默认值
      getResources();
    super.onConfigurationChanged(newConfig);
  }

  @Override
  public Resources getResources() {
    Resources res = super.getResources();
    if (res.getConfiguration().fontScale != 1) {//非默认值
      Configuration newConfig = new Configuration();
      newConfig.setToDefaults();//设置默认
      res.updateConfiguration(newConfig, res.getDisplayMetrics());
    }
    return res;
  }

android 端也完成了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,282评论 25 709
  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,039评论 3 119
  • 亲爱的书湘: 当你看到这封信的时候,我想你已经回到了这座小木屋里,而我或许已经在路上,亦或是在另外一个世界,但...
    冷城CC阅读 4,082评论 1 3
  • 七夕,缘起缘续 七夕,牛郎和织女相会的日子,据说这一天喜鹊会飞向天空,在宽宽的银河上搭一座桥,而牛郎和织女便会通过...
    李素问阅读 3,593评论 4 3
  • 几乎每个人在年少时,都有一个不成熟的小幻想。 不论男孩女孩,他们都想要一个特异功能—— 隐身。 但长大之后,大家慢...
    大叔电影阅读 3,280评论 0 0