Flexbox在图像内定位文本

时间:2016-09-28 22:35:29

标签: reactjs react-native flexbox css-position react-native-flexbox

我正在使用React Native并尝试创建特定的布局。

我有一个图像,垂直和放大水平居中(在视图内)和图像顶部的一些文本也垂直和放大水平居中。文本需要位于图像/背景图像之上,因此我将其放在图像标记内。

现在该文本的内容可能很长,因为它位于图片标记内,所以它会包装。

我怎样才能使Text内的内容不会换行并仍然在Image的顶部?

到目前为止我的布局:

enter image description here

我正在努力实现的布局

enter image description here

我的代码:

<TouchableHighlight onPress={onPress}>
  <View style={styles.categoryContainer}>
    <View style={styles.leftContainer}>
      <View style={styles.categoryIndexContainer}>
        <Text style={styles.categoryIndex}>01</Text>
      </View>
    </View>
    <View style={styles.middleContainer}>
      <Image source={img} style={styles.categoryImage}>
        <Text style={styles.categoryName}>Some very long title name</Text>
      </Image>
    </View>
    <View style={styles.rightContainer}></View>
  </View>
</TouchableHighlight>

const styles = StyleSheet.create({
  categoryContainer: {
    flexDirection: 'row',
  },
  leftContainer: {
    width: 50,
    paddingLeft: 15,
    paddingTop: 30,
  },
  middleContainer: {
    alignItems: 'center',
    justifyContent: 'center',
    flex: 1,
    flexDirection: 'row',
  },
  rightContainer: {
    width: 50,
  },
  categoryName: {
    color: '#ffffff',
    fontWeight: 'bold',
    fontSize: 40,
    textAlign: 'center',
    backgroundColor: 'transparent',
    flexWrap: 'nowrap',
  },
  categoryImage: {
    alignItems:'center',
    justifyContent:'center',
    flexWrap: 'nowrap',
  },
})

由于

1 个答案:

答案 0 :(得分:0)

您应该在categoryName样式上指定:position: 'absolute'然后设置topleftrightbottom属性,直到您放置Text以上Image