Comment centrer le texte dans ReactNative à la fois horizontalement et verticalement?
J'ai un exemple d'application dans rnplay.org où justificationContent = "centre" et alignItems = "centre" ne fonctionne pas: https://rnplay.org/apps/AoxNKQ
Le texte doit être centré. Et pourquoi y a-t-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;
reactjs
flexbox
react-native
itinance
la source
la source
Réponses:
De
headline
'style supprimerheight
,justifyContent
etalignItems
. Il centrera le texte verticalement. AjouteztextAlign: 'center'
et il centrera le texte horizontalement.la source
width
sauf si vous l'enveloppez dans un<View>
avecjustifyContent: 'center', alignItems: 'center',
Déjà répondu, mais j'aimerais ajouter un peu plus sur le sujet et les différentes façons de le faire en fonction de votre cas d'utilisation.
Vous pouvez ajouter
adjustsFontSizeToFit={true}
(actuellement non documenté) auText
composant pour ajuster automatiquement la taille à l'intérieur d'un nœud parent.Vous pouvez également ajouter les éléments suivants dans votre composant texte:
Ou vous pouvez ajouter ce qui suit dans le parent du composant Texte:
ou les deux
ou les trois
Tout dépend de ce que vous faites. Vous pouvez également consulter mon article de blog complet sur le sujet
https://medium.com/@vygaio/how-to-auto-adjust-text-font-size-to-fit-into-a-nodes-width-in-react-native-9f7d1d68305b
la source
textAlignVertical: "center", textAlign: "center"
que <Text /> Style de composant.Définissez ces styles sur le composant image: {textAlignVertical: "center", textAlign: "center"}
la source
est la vraie magie.
la source
ceci est un exemple d' alignement horizontal et vertical simultanément
la source
Alignement central horizontal et vertical
la source
Vous pouvez utiliser une
alignSelf
propriété sur le composant Textela source
Partout où vous avez un
Text
composant dans votre page, il vous suffit de définir le style duText
composant.vous n'avez pas besoin d'ajouter d'autre propriété de style, c'est une magie spectaculaire qui vous mettra du texte au centre de votre interface utilisateur.
la source
Ajout simple
dans votre feuille de style, c'est tout. J'espère que cela vous aidera.
modifier: "centre"
la source
La propriété suivante peut être utilisée:
{{alignItems: 'center'}}
la source
utilisé
textalign: centre
à la vue
la source
Définir dans la vue parent
et en vue enfant alignSelf: centre
la source
justifyContent
etalignSelf
En plus des cas d'utilisation mentionnés dans les autres réponses:
Pour centrer le texte dans le cas d'utilisation spécifique d'un BottomTabNavigator , n'oubliez pas de définir showIcon sur false (même si vous n'avez pas d'icônes dans TabNavigator). Sinon, le texte sera poussé vers le bas de l'onglet.
Par exemple:
la source
la source
ajouter d'abord dans la vue parent flex: 1, justificationContenu: 'centre', alignItems: 'centre'
puis dans le texte, ajoutez textAlign: 'center'
la source