La technique que j'utilise pour avoir un pourcentage de largeur du parent ajoute une vue d'espacement supplémentaire en combinaison avec une flexbox. Cela ne s'appliquera pas à tous les scénarios, mais cela peut être très utile.
Alors on y va:
class PercentageWidth extends Component {
render() {
return (
<View style={styles.container}>
<View style={styles.percentageWidthView}>
{/* Some content */}
</View>
<View style={styles.spacer}
</View>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flexDirection: 'row'
},
percentageWidthView: {
flex: 60
},
spacer: {
flex: 40
}
});
Fondamentalement, la propriété flex est la largeur par rapport au flex "total" de tous les éléments du conteneur flex. Donc, si tous les éléments totalisent 100, vous avez un pourcentage. Dans l'exemple, j'aurais pu utiliser les valeurs de flex 6 et 4 pour le même résultat, donc c'est encore plus FLEXible.
Si vous souhaitez centrer la vue en pourcentage de largeur: ajoutez deux entretoises avec la moitié de la largeur. Donc, dans l'exemple, ce serait 2-6-2.
Bien sûr, ajouter des vues supplémentaires n'est pas la chose la plus agréable au monde, mais dans une application du monde réel, je peux imaginer que l'espaceur contiendra un contenu différent.
react-native
utiliseflex
pour les tailles et les positions des éléments. Je ne suis pas sûr mais c'est peut-êtreflex-basis
ce dont vous avez besoin: Vérifiez ceci et cela