在React Text组件中动态设置字体大小

时间:2018-11-27 19:40:45

标签: reactjs react-native

我正在尝试在RN应用程序中设置以下布局

layout

以下代码将其启动并运行:

import * as React from 'react';
import { Text, View, StyleSheet } from 'react-native';
import { Constants } from 'expo';

// You can import from local files
import AssetExample from './components/AssetExample';

// or any pure javascript modules available in npm
import { Card } from 'react-native-paper';

export default class App extends React.Component {
  render() {
    return (
      <View style={styles.container}>
        <Text style={styles.paragraph}>
          Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut l ->
        </Text>
        <Text style={styles.largeParagraph}>
          Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut l
        </Text>
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    paddingTop: Constants.statusBarHeight,
    backgroundColor: '#ecf0f1',
    padding: 8,
  },
  paragraph: {
    margin: 24,
    fontSize: 18,
    fontWeight: 'bold',
    textAlign: 'center',
  },
  largeParagraph: {
    margin: 24,
    fontSize: 30,
    fontWeight: 'bold',
    textAlign: 'center',
  },
});

要求第一和第二文本部分各占一行。我尝试使用adjustsFontSizeToFitnumberOfLines={1}的组合来实现此功能。

但是,在所有调整之后,两个文本输入最后必须具有相同的字体大小,这应该是对两个组件应用adjustsFontSizeToFit之后的最小字体大小。我浏览了RB文档,但无济于事。

最能实现此目的的React Native方法是什么?

1 个答案:

答案 0 :(得分:0)

解决方案是在属性中使用样式数组:

<Text style={[styles.paragraph, {fontSize: this.state.dynamicSize}]}>