如何更改整个React Native应用程序的默认字体系列

时间:2019-05-10 04:32:38

标签: react-native

我需要向我的应用添加自定义字体。并且所有文本(包括按钮标题)都必须以自定义字体显示。 我该如何实现?

我已在我的应用程序中添加了自定义字体。但是它需要为每个文本提供字体系列样式,并且不能更改按钮标题的字体系列。

3 个答案:

答案 0 :(得分:1)

这些答案似乎没有真正阅读您的问题。.因此,这是在全局使用字体而无需每次都指定字体的方法:

创建一个类似这样的组件:

import * as React from 'react';
import { Text } from 'react-native';


export default (props) => {
  const defaultStyle = { fontFamily: 'Muli', lineHeight: 16, color: '#14181c' };
  const incomingStyle = Array.isArray(props.style) ? props.style : [props.style];
  return <Text {...props} style={[defaultStyle, ...incomingStyle]} />;
};

现在,无论您身在何处

import { Text } from 'react-native'

替换为

import { Text } from '.../global-components':)

答案 1 :(得分:0)

通常的做法是:

  • 下载所需的字体系列
  • 接下来将所需的所有字体文件添加到您的react native项目的根目录中的“ assets / fonts”文件夹中
  • 在您的package.json "assets": ["./assets/fonts/"]
  • 中添加字体文件的位置
  • 运行react-native链接

您可以按字体文件的名称约定使用它。

答案 2 :(得分:-1)

将字体添加到资产

  

将所需的所有字体文件添加到以下位置的“assets/fonts”文件夹中:   您的本机项目的根目录

Package.json

  

接下来,我们需要告诉React Native我们的自定义字体在哪里。   为此,我们将rnpm添加到package.json中,以提供指向   字体文件:

"rnpm": {
    "assets": [
    "./assets/fonts/"
    ]
},
  

然后,我们告诉react native为我们链接这些字体文件:

react-native link
     

这应该在iOS的Info.plist文件中添加字体引用   然后在Android上将字体文件复制到   android / app / src / main / assets / fonts。您可以通过打开来验证   从iOS文件夹中找到Info.plist,然后寻找UIAppFonts密钥,   应该看到类似

的内容
<key>UIAppFonts</key>
    <array>
        <string>yourFontFamilyName Regular.ttf</string>
    </array>
  

在Android上,如果您查找文件路径   “android/app/src/main/assets/fonts/”,您应该会看到字体   由react-native-link

添加

用法示例:

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: "center",
    alignItems: "center",
    backgroundColor: "#F5FCFF"
  },
  welcome: {
    fontFamily: "youFontFamilyName",
    fontSize: 30,
    textAlign: "center",
    margin: 10
  },
  instructions: {
    fontFamily: "youFontFamilyName",
    fontSize: 20,
    textAlign: "center",
    color: "#333333",
    marginBottom: 5
  }
});
  

注意:请使用与"assets/fonts"文件夹中相同的字体名称   样式