Dima Portenko
Dima Portenko

Reputation: 3844

React Native. How to place two Text with different fontSize in row with vertical align center

I need to align two Text component with different fontSize in a row and vertically centered. I have following now https://snack.expo.io/@troublediehard/dmVuZ2

enter image description here

export default class App extends React.Component {
  render() {
    return (
      <View style={styles.container}>
        <View style={styles.row}>
          <Text style={styles.text1}>Font size 20</Text>
          <Text style={styles.text2}>Font size 14</Text>
        </View>
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    paddingTop: Constants.statusBarHeight,
    backgroundColor: '#ecf0f1',
    padding: 8,
  },
  row: {
    flexDirection: 'row',
    backgroundColor: 'red',
  },
  text1: {
    fontSize: 20,
    backgroundColor: 'blue',
  },
  text2: {
    fontSize: 14,
    backgroundColor: 'green',
  },
});

Upvotes: 5

Views: 8229

Answers (2)

Ian Vasco
Ian Vasco

Reputation: 1340

For anyone that didn't found a solution yet, you have to wrap the text within another Text tag:

<View style={styles.container}>
  <View style={styles.row}>
    <Text>
      <Text style={styles.text1}>Font size 20</Text>
      <Text style={styles.text2}>Font size 14</Text>
    </Text>
  </View>
</View>

Upvotes: 10

Pritish Vaidya
Pritish Vaidya

Reputation: 22189

You need to add alignItems: 'center' to styles.row

row: {
    flexDirection: 'row',
    alignItems: 'center',
    backgroundColor: 'red',
},

Upvotes: 5

Related Questions