我需要向我的应用添加自定义字体。并且所有文本(包括按钮标题)都必须以自定义字体显示。 我该如何实现?
我已在我的应用程序中添加了自定义字体。但是它需要为每个文本提供字体系列样式,并且不能更改按钮标题的字体系列。
答案 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)
通常的做法是:
"assets": ["./assets/fonts/"]
您可以按字体文件的名称约定使用它。
答案 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"
文件夹中相同的字体名称 样式