如何在文本中将文本垂直放置在本机中? I found this doc。但我无法做到这一点,我无法将text
标记添加为Image
代码的子组件。我已经尝试过如下。
<Card>
<CardSection>
<View style={styles.container}>
<Image source={require('../Images/4.jpg')} style={styles.imageStyl} />
<Text style={styles.userStyle}>
{this.props.cat.name}
</Text>
</View>
</CardSection>
</Card>
const styles= StyleSheet.create({
container:{
flex: 1,
alignItems: 'stretch',
justifyContent: 'center',
},
imageStyl: {
flexGrow:1,
width:"100%",
height:200,
alignItems: 'center',
justifyContent:'center',
},
userStyle:{
fontSize:18,
color:'black',
fontWeight:'bold',
textAlign: 'center'
},
});
答案 0 :(得分:18)
你必须在“css”中使用
position:'absolute'
然后使用css属性(如顶部,底部,右侧,左侧)放置文本
React Native absolute positioning horizontal centre
将您想要居中的孩子包裹在视图中并使视图绝对。
<View style={{position: 'absolute', top: 0, left: 0, right: 0, bottom: 0, justifyContent: 'center', alignItems: 'center'}}>
<Text>Centered text</Text>
</View>
答案 1 :(得分:12)
使用此:
<ImageBackground source={require('background image path')} style={{width: '100%', height: '100%'}}>
<View style={{position: 'absolute', top: 0, left: 0, right: 0, bottom: 0, justifyContent: 'center', alignItems: 'center'}}>
<Text>Centered text</Text>
</View>
</ImageBackground>
答案 2 :(得分:6)
您可以从ImageBackground
导入Image
而不是react-native
并将文本作为子级传递到ImageBackground
。这就是魔术。请查看下面的代码:
<View style={styles.imageWrapper}>
<ImageBackground style={styles.theImage} source={{uri : item.imageUrl}}>
<Text>Hey</Text>
</ImageBackground>
</View>
const styles = StyleSheet.create({
imageWrapper: {
height: 200,
width: 200,
overflow : "hidden"
},
theImage: {
width: "100%",
height: "100%",
resizeMode: "cover",
}
})
我们也可以使用许多人所说的定位,但是我更喜欢使用ImageBackground
。
答案 3 :(得分:1)
我有自己的组件:
import React from 'react';
import { View, Image } from 'react-native';
const BackgroundImage = (props) => {
const { container, image } = styles;
return (
<View style={container}>
<Image
style={[image,
{ resizeMode: props.resizeMode,
opacity: props.opacity}
]}
source={props.source}***strong text***
/>
</View>
)
};
const styles = {
container: {
position: 'absolute',
top: 0,
left: 0,
width: '100%',
height: '100%',
},
image: {
flex: 1,
}
};
export {BackgroundImage};
该组件将使用您希望的任何图像填充您的容器;)
import React from 'react';
import { View, Image } from 'react-native';
class List extends Component {
render() {
let source = {uri: 'http://via.placeholder.com/350x150'};
return (
<View style = {{backgroundColor: 'black'}>
<BackgroundImage
resizeMode="cover"
opacity={0.6}
source={source}
/>
<Text>Hello World</Text>
</View>
)
}
export default List;
答案 4 :(得分:0)
它与普通的HTML和CSS非常相似,它将文本放在图像上。您必须通过使文本绝对来将文本放在图像上。
按原样修改了这些代码:
userStyle:{
position : absolute;
bottom : 0,
top : 50,
left : 0,
right : 0,
alignItems: 'center',
justifyContent:'center',
}
我希望这些代码可以解决您的问题。