React-Native:在一个View组件中将两个文本组件居中

时间:2018-10-23 11:00:38

标签: reactjs react-native text view native-base

我正在尝试将两个单独的文本放在其组件的中心,我正在使用‍ {react-nativenative-base。我无法在Text组件本身中垂直和水平居中放置文本。我将颜色分为两种,以图形方式查看问题。

元素:

<View
  style={{
    flex: 1,
    flexDirection: 'column',
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: 'red'
  }}>
  <Text uppercase={false} style={styles.buttonTextLeft}>
    {title}
  </Text>
  <Text uppercase={false} style={styles.buttonTextLeftGreen}>
    {subTitle}
  </Text>
</View>

样式:

buttonTextLeft: {
  fontFamily: 'Cuprum-Bold',
  fontSize: normalize(20),
  color: '#005f99',
  flex: 1,
  flexDirection: 'row',
  backgroundColor: 'yellow'
},
buttonTextLeftGreen: {
  fontFamily: 'Cuprum-Bold',
  fontSize: normalize(20),
  color: '#94cf1c',
  flex: 1,
  flexDirection: 'row',
  backgroundColor: 'green'
},

您看到的是我所做的所有测试。当然,这很愚蠢,但我尚未解决,您有什么想法吗?谢谢。

  

解决方案

对于那些有相同问题的人,我输入正确且干净的当前情况的代码(不使用backgroundColor):

  

JS

<View
  style={{
    flex: 1,
    flexDirection: 'column',
    justifyContent: 'center',
  }}
>
  <Text uppercase={false} style={styles.buttonTextLeft}>
    {title}
  </Text>
  <Text uppercase={false} style={styles.buttonTextLeftGreen}>
    {subTitle}
  </Text>
 </View>
  

样式

buttonTextLeft: {
  fontFamily: 'Cuprum-Bold',
  fontSize: normalize(20),
  flex: 1,
  flexDirection: 'row',
  lineHeight: normalize(20),
  paddingVertical: normalize(4),
  color: '#005f99',
},
buttonTextLeftGreen: {
  fontFamily: 'Cuprum-Bold',
  fontSize: normalize(20),
  flex: 1,
  flexDirection: 'row',
  lineHeight: normalize(20),
  paddingVertical: normalize(4),
  color: '#94cf1c',
},

2 个答案:

答案 0 :(得分:1)

也许我不是真的了解您的问题,我想您的问题在greenyellow区域内。

我遇到了同样的问题,为了处理该问题,我使用了line-height: 20paddingVertical: 5205数字是示例,用于我的项目设计。您输入数字而不是数字。

答案 1 :(得分:0)

将文本的行高设置为所需的框高应该可以。例如,如果您希望黄色框高50,则可以在文本上设置lineHeight: 50

希望有帮助。