ReactNative: comment faire pour centrer le texte?
Comment faire pour centrer le Texte dans ReactNative à la fois horizontal et vertical?
J'ai un exemple d'application dans rnplay.org où justifyContent="center" et alignItems="center" ne fonctionne pas:
https://rnplay.org/apps/AoxNKQ
Le texte doit être centré.
Et pourquoi est-il une marge en haut entre le texte (jaune) et le conteneur parent?
Code:
'use strict';
var React = require('react-native');
var {
AppRegistry,
StyleSheet,
Text,
Image,
View,
} = React;
var SampleApp = React.createClass({
render: function() {
return (
<View style={styles.container}>
<View style={styles.topBox}>
<Text style={styles.headline}>lorem ipsum{'\n'}ipsum lorem lorem</Text>
</View>
<View style={styles.otherContainer}>
</View>
</View>
);
}
});
var styles = StyleSheet.create({
container: {
flex: 1,
flexDirection: 'column',
backgroundColor: 'red',
justifyContent: 'center',
alignItems: 'center',
},
topBox: {
flex: 1,
flexDirection: 'row',
backgroundColor: 'lightgray',
justifyContent: 'center',
alignItems: 'center',
},
headline: {
fontWeight: 'bold',
fontSize: 18,
marginTop: 0,
width: 200,
height: 80,
backgroundColor: 'yellow',
justifyContent: 'center',
alignItems: 'center',
},
otherContainer: {
flex: 4,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: 'green',
},
});
AppRegistry.registerComponent('SampleApp', () => SampleApp);
module.exports = SampleApp;
- Comme ceci: rnplay.org/apps/1hbnSA ?
- ce n'est pas horizontal centré
- ok, donc ceci: rnplay.org/apps/1hbnSA, mis à jour
- WAAAA... textAlign ? je savais que ça allait être quelque chose de vraiment stupide.... vous devriez poster cela comme une réponse
- Fait! 🙂 Content que ça a fonctionné pour vous..
Vous devez vous connecter pour publier un commentaire.
De
headline
' style supprimerheight
,justifyContent
etalignItems
. Il va centrer le texte verticalement. AjoutertextAlign: 'center'
et il va centrer le texte horizontalement.width
à moins que vous l'envelopper dans un<View>
avecjustifyContent: 'center', alignItems: 'center',
Déjà répondu par je tiens à ajouter un peu plus sur le sujet et les différentes façons de le faire selon votre cas d'utilisation.
Vous pouvez ajouter
adjustsFontSizeToFit={true}
(actuellement sans papiers) pour vousText
Composant de réglage automatique de la taille à l'intérieur d'un nœud parent.Vous pouvez également ajouter la ligne suivante dans votre Texte:
Ou vous pouvez ajouter la ligne suivante dans le parent de l'élément de Texte:
ou les deux
ou tous les trois
Tout dépend de ce que vous faites. Vous pouvez aussi regarder mon blog sur le thème
https://medium.com/@vygaio/how-to-auto-adjust-text-font-size-to-fit-into-a-nodes-width-in-react-native-9f7d1d68305b
Définir ces styles à l'image de la composante:
{
textAlignVertical: "centre",
textAlign: "centre"
}
c'est un exemple pour Horizontale et Verticale alignement simultanément
est la véritable magie.
Horizontale et Verticale alignement au centre
Vous pouvez utiliser
alignSelf
de propriété sur le Texte de la composantePartout où vous avez
Text
composant dans votre page, vous devez définir le style de laTest
composant.vous n'avez pas besoin d'ajouter de tout autre style de propriété, c'est spectaculaire de la magie, il va vous mettre le texte au centre de votre INTERFACE utilisateur.
Outre les cas d'utilisation mentionnées dans les autres réponses:
Pour centrer le texte dans le cas d'utilisation spécifiques d'un BottomTabNavigator, n'oubliez pas de régler showIcon à faux (même si vous n'avez pas d'icônes dans la TabNavigator). Sinon le texte sera poussé vers le bas de l'Onglet.
Par exemple: