J'ai placé une image en tant que nœud racine afin d'en faire un arrière-plan pour ma vue. Mais il semble que toutes les autres images deviennent invisibles ... Est-il possible de placer une image au-dessus de l'arrière-plan à l'aide de composants intégrés, sans plugins?
Dans l'exemple de code suivant landing-background
est utilisé comme arrière-plan, mon logo
image est visible, mais uniquement si l'arrière-plan est supprimé.Text
s'affiche en haut de l'arrière-plan sans aucun problème ...
<View style={styles.container}>
<Image source = {require('./img/landing-background.jpg')}
resizeMode = 'cover' style = {styles.backdrop}>
<View style = {styles.overlay}>
<Text style = {styles.headline}>It should appear in front of the Background Image</Text>
<Image style = {styles.logo} source = {require('./img/logo.png')} />
</View>
</Image>
</View>
var styles = StyleSheet.create({
container: {
flex: 1,
alignItems: 'center',
},
overlay: {
opacity: 0.5,
backgroundColor: '#000000'
},
logo: {
backgroundColor: 'rgba(0,0,0,0)',
width: 160,
height: 52
},
backdrop: {
flex:1,
flexDirection: 'column'
},
headline: {
fontSize: 18,
textAlign: 'center',
backgroundColor: 'rgba(0,0,0,0)',
color: 'white'
}
});
Plutôt que d'envelopper votre contenu dans le <Image>
, Je pense que vous feriez mieux d'envelopper cela dans un élément absolute
ly positionné et d'avoir cet étirement pour couvrir l'écran.
<View style={styles.container}>
<View style = {styles.backgroundContainer}>
<Image source = {require('./img/landing-background.jpg')} resizeMode = 'cover' style = {styles.backdrop} />
</View>
<View style = {styles.overlay}>
<Text style = {styles.headline}>It should appear in front of the Background Image</Text>
<Image style = {styles.logo} source = {require('./img/logo.png')} />
</View>
</View>
var styles = StyleSheet.create({
backgroundContainer: {
position: 'absolute',
top: 0,
bottom: 0,
left: 0,
right: 0,
},
container: {
flex: 1,
alignItems: 'center',
},
overlay: {
opacity: 0.5,
backgroundColor: '#000000'
},
logo: {
backgroundColor: 'rgba(0,0,0,0)',
width: 160,
height: 52
},
backdrop: {
flex:1,
flexDirection: 'column'
},
headline: {
fontSize: 18,
textAlign: 'center',
backgroundColor: 'black',
color: 'white'
}
});
J'ai le même problème, j'ai utilisé un <ImageBackground>
<View style={{height: 55,width: 55,justifyContent: 'center',alignItems: 'center'}}>
<ImageBackground source={{uri:this.state.image1}} style={{height: 50,width: 50}}>
<View style={{flex: 1,justifyContent: 'flex-end',alignItems: 'flex-start'}}> //here you can change position of image with justifyContent and alignItems
<Image
source={ {uri:this.state.image2}}
style={{width: 20 , height: 20 ,alignItems: 'center',justifyContent: 'center',borderWidth: 1,borderColor: '#fff',borderRadius: 30}} />
</View>
</ImageBackground>
</View>
<ImageBackground style={{width:100, height:100, jsutifyContent:'center}}>
<Image/> //childimage
</ImageBackground
Cela vous aiderait à ajouter une image d'arrière-plan avec une superposition de l'image enfant, et a parfaitement fonctionné pour moi.