Como centralizar o texto no ReactNative tanto na horizontal quanto na vertical?
Eu tenho um exemplo de aplicativo em rnplay.org, em que justifyContent = "center" e alignItems = "center" não está funcionando: https://rnplay.org/apps/AoxNKQ
O texto deve estar centralizado. E por que existe uma margem na parte superior entre o texto (amarelo) e o contêiner pai?
Código:
'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
fonte
fonte
Respostas:
De
headline
'remove estiloheight
,justifyContent
ealignItems
. Centralizará o texto verticalmente. AdicionetextAlign: 'center'
e ele centralizará o texto horizontalmente.fonte
width
a menos que você envolvê-la em um<View>
comjustifyContent: 'center', alignItems: 'center',
Já respondi, mas gostaria de adicionar um pouco mais sobre o tópico e diferentes maneiras de fazer isso, dependendo do seu caso de uso.
Você pode adicionar
adjustsFontSizeToFit={true}
(atualmente não documentado) aoText
Componente para ajustar automaticamente o tamanho dentro de um nó pai.Você também pode adicionar o seguinte no seu componente de texto:
Ou você pode adicionar o seguinte ao pai do componente Text:
ou ambos
ou todos os três
Tudo depende do que você está fazendo. Você também pode conferir minha postagem completa no blog sobre o tópico
https://medium.com/@vygaio/how-to-auto-adjust-text-font-size-to-fit-into-a-nodes-width-in-react-native-9f7d1d68305b
fonte
textAlignVertical: "center", textAlign: "center"
como <Text /> Component Style.Defina esses estilos para o componente de imagem: {textAlignVertical: "center", textAlign: "center"}
fonte
é a verdadeira magia.
fonte
este é um exemplo para alinhamento horizontal e vertical simultaneamente
fonte
Alinhamento central horizontal e vertical
fonte
Você pode usar a
alignSelf
propriedade no componente Textofonte
Onde quer que você tenha um
Text
componente em sua página, basta definir o estilo doText
componente.você não precisa adicionar nenhuma outra propriedade de estilo; isso é uma mágica espetacular, pois você definirá o texto no centro da sua interface do usuário.
fonte
Adição simples
no seu styleSheet, é isso. Espero que isso ajude.
editar: "centro"
fonte
A seguinte propriedade pode ser usada:
{{alignItems: 'center'}}
fonte
usava
textalign: center
na vista
fonte
Definir na visualização principal
e na visão infantil alignSelf: center
fonte
justifyContent
ealignSelf
Além dos casos de uso mencionados nas outras respostas:
Para centralizar o texto no caso de uso específico de um BottomTabNavigator , lembre-se de definir showIcon como false (mesmo se você não tiver ícones no TabNavigator). Caso contrário, o texto será empurrado para a parte inferior da guia.
Por exemplo:
fonte
fonte
primeiro adicionar na visualização pai flex: 1, justifyContent: 'center', alignItems: 'center'
em seguida, no texto, adicione textAlign: 'center'
fonte