博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
react native 处理iOS和安卓系统文字
阅读量:6576 次
发布时间:2019-06-24

本文共 1632 字,大约阅读时间需要 5 分钟。

非常简单的几步 让 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 端也完成了

转载地址:http://dmwno.baihongyu.com/

你可能感兴趣的文章
css3做的nav
查看>>
互联网架构师必备技术 Docker仓库与Java应用服务动态发布那些事
查看>>
Intellij IDEA 2018.2 搭建Spring Boot 应用
查看>>
SNMP AGENT函数介绍
查看>>
[Usaco2005 Open]Disease Manangement 疾病管理 BZOJ1688
查看>>
【Android视图效果】分组列表实现吸顶效果
查看>>
多文件上传示例源码(默认支持各种类型,包括图片)
查看>>
命令行基本操作学习笔记(一)
查看>>
「试着读读 Vue 源代码」工程目录及本地运行(断点调试)
查看>>
A Visual Git Reference
查看>>
Tomcat 关于表单提交数据量过大导致数据丢失的问题
查看>>
金融数据库
查看>>
翻了100个程序员的朋友圈, 发现个个都是套路王
查看>>
取消从上一界面push过来后,左上角的back按钮
查看>>
为什么 ++[[]][+[]]+[+[]] = 10?
查看>>
ContentProvider
查看>>
Redis 持久化存储
查看>>
Android 自定义GridView网格布局
查看>>
基于 jQuery & CSS3 实现智能提示输入框光标位置
查看>>
我的友情链接
查看>>