我正在开发一个混合应用程序反应原生+ Android。我希望整个应用程序的字体大小一致。所以我想访问Android的dimen.xml中声明的字体大小,我已经为不同设备的不同维度创建了存根。我可以通过像
这样的Native Modules公开它@ReactMethod
public float getFontSize(Callback callback){
callback.invoke(mContext.getResources().getDimension(R.dimen.text_h1));
return mContext.getResources().getDimension(R.dimen.text_h1);
}
我可以从像本地的反应中访问它
NativeModules.Utilities.getFontSize((textsize)=>console.log(textsize))
但是,我怎样才能将它添加到我的以下风格中?
TextStyleH1: {
...Platform.select({
ios: {
fontFamily: "PFEncoreSansPro-Book",
},
android: {
fontFamily: "pfencoresanspro_book",
},
}),
fontSize: 18, // I want to change to textsize returned from NativeModule
},
我的样式在具有
的styles.js中定义const styles = StyleSheet.create({
...
});
因为我希望它可以重复使用,因为我有14种不同的文本样式,并且在我的组件中有很多<Text />
。所以我想只更改styles.js中的fontSize(如果可能的话)
答案 0 :(得分:1)
您必须通过附加样式添加它:
componentWillMount() {
NativeModules.Utilities.getFontSize((textsize)=>this.setState({textsize}));
}
render() {
return (
<Text style={[styles.TextStyleH1, {
fontSize: this.state.textsize
}]}>
Sample Text
</Text>
);
}