J'essaie d'obtenir une ombre sous mes vues, et d'après ce que j'ai trouvé en ligne, cela devrait être assez simple:
shadowOffset: { width: 10, height: 10 },
shadowColor: 'black',
shadowOpacity: 1.0,
mais le problème est que l'ombre n'apparaît pas du tout.
Voici mes composants
<View style={styles.shadow}>
<View style={styles.box} >
<View style={styles.ListComponent}>
<Text style={styles.itemText}>Livestream</Text>
</View>
</View>
</View>
et dans ma feuille de style:
const styles = StyleSheet.create({
shadow: {
shadowOffset: { width: 10, height: 10 },
shadowColor: 'black',
shadowOpacity: 1.0
},
Y a-t-il une raison à cela ou y a-t-il quelque chose que j'ai manqué?
L'ombre fonctionne-t-elle sur les E/S? Android et IOS fonctionne ≠ dans React-Native. Pour Android, il fonctionne avec élévation .
const styles = StyleSheet.create({
shadow: {
shadowOffset: { width: 10, height: 10 },
shadowColor: 'black',
shadowOpacity: 1,
elevation: 3,
// background color must be set
backgroundColor : "#0000" // invisible color
}
Sinon, essayez de définir une couleur d'arrière-plan pour votre composant d'ombre :)
Pour iOS, augmentez le zIndex
de votre <View>
Externe
const styles = StyleSheet.create({
shadow: {
shadowOffset: { width: 10, height: 10 },
shadowColor: 'black',
shadowOpacity: 1,
elevation: 3,
zIndex:999,
}
Moi aussi, je voulais avoir une ombre sous ma vue dans mon Android. L'astuce que j'ai trouvée était donc:
Pour IOS:
const styles = StyleSheet.create({
shadow: {
shadowOffset: { width: 0, height: 2 },
shadowColor: '#000',
shadowOpacity: 0.2
}
});
Et pour Android:
const styles = StyleSheet.create({
shadow: {
elevation: 5
}
});
Si vous travaillez sur des éléments d'interface utilisateur, je vous suggère de consulter NativeBase site. Ils ont rendu la vie facile en ce qui concerne le style.