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

栏目: IOS · Android · 发布时间: 6年前

内容简介:ios 端完成, 你可以试着修改系统的文字大小实验在 MainApplication.java 文件中加入如下代码:android 端也完成了
  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的入口文件里加上如下内容 (:warning:注意 是入口文件 ,否则可能不起作用)
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 端也完成了


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

人本界面

人本界面

(美)拉斯基(Jef Raskin) / 史元春 / 机械工业出版社 / 2004-1-1 / 28.0

如果我们想克服目前人机界面上的固有缺陷,就很有必要理解本书的教义;若无此愿望,读读也无妨。交互设计的许多重要方面此书并没有包括在内,因为许多文献中都已经有详尽的阐述。本书的意图是补充现有的界面设计的方法或预测未来。  本书概述了人机界面设计领域的研究成果,详细论证了界面设计思想应以认知学为基础,并考虑人类的心智特点,在指出当前界面设计中弊端的同时,提出了新产品开发的思路。本书集计算机科学、人体工程......一起来看看 《人本界面》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具