L'entrée de texte est alignée au centre, comment corriger cette entrée de texte afin qu'elle prenne l'entrée du coin supérieur gauche
Voici mon css pour la saisie de texte
/* The Text input is center aligned, how to fix this text input so that it takes input from top left corner */
input: {
flex: 1, padding: 4, marginRight: 1, marginTop: 5, fontSize: 18, borderWidth: 1, borderRadius: 4, borderColor: '#E6E5ED', backgroundColor: '#F8F8F9', justifyContent: 'flex-start', height: 150
}
javascript
ios
reactjs
react-native
Vikramaditya
la source
la source
Réponses:
J'ai eu le même problème, mais les notes ci-dessus ne l'ont pas résolu. Il existe une propriété de style Android uniquement
textAlignVertical
qui résout ce problème sur les entrées multilignes.c'est à dire
textAlignVertical: 'top'
la source
multiline={true}
Android.textAlignVertical
n'est que pour Android?TextInput a un remplissage par défaut, remplacez-le en définissant:
paddingTop: 0, paddingBottom: 0
Problème Github
la source
J'ai trouvé la solution que dans Android, le style TextInput
textAlignVertical: 'top'
fonctionne. mais dans iOS, le prop TextInputmultiline={true}
fonctionne.la source
J'ai eu un cas d'utilisation similaire dans mon application iOS, dans lequel la
TextInput
hauteur du s était de 100 et l'espace réservé était affiché au milieu. J'ai utilisémultiline={true}
et cela a fait apparaître le texte du haut. J'espère que ça t'as aidé.la source
Donnez
textAlignVertical : "top"
cela résoudra votre problème.<TextInput placeholder="Your text post" multiline={true} numberOfLines={10}, maxLength={1000} style={{ borderWidth: 1, backgroundColor: "#e3e3e3", textAlignVertical : "top" }} />
la source
Mise à jour 03/07/2015: les entrées de texte multiligne ont maintenant été fusionnées:
https://github.com/facebook/react-native/pull/991
Les exemples multilignes fournis avec React Native dans l'explorateur d'interface utilisateur doivent fonctionner comme indiqué.
Le problème que vous aurez est que TextInput multiligne ne fonctionne pas encore correctement et que les documents sont trompeurs. Veuillez consulter ce problème Github:
https://github.com/facebook/react-native/issues/279
Il y a du code dans ce problème qui donne une fonctionnalité multiligne minimale, vous pourrez donc peut-être le faire fonctionner avec cela.
la source
Cela a fonctionné pour moi (RN 0.61.5):
<TextInput style={{textAlignVertical:'top', paddingTop: 0, paddingBottom:0 }} />
la source
Just Incase vous cherchez du code:
<TextInput placeholder={'comment goes here!'} multiline style={{textAlignVertical:'top', ...otherStyle}} />
la source
import { Dimensions} from 'react-native'; const screenWidth = Math.round(Dimensions.get('window').width); const screenHeight = Math.round(Dimensions.get('window').height); // ... intext: { height:screenHeight - 10, textAlignVertical: 'top', fontSize:17, padding:12, fontFamily:'courier', margin:10, },
la source
J'ai découvert par inspecteur d'élément que pour iOS, il existe un
paddingTop: 5
pourmultiline
TextInput
s. Cela était toujours appliqué même si je définissaispaddingVertical: 15
toutes mes entrées. Le résultat était un texte non centré dans les entrées multilignes sur iOS. La solution était d'ajouter en plus unpaddingTop: 15
si leTextInput
estmultiline
et la plate-forme est iOS. Désormais, il n'y a visuellement aucune différence entre les entrées à une seule ligne et à plusieurs lignes sur les deux plates-formes, Android et iOS.la source
Pour que le texte soit aligné verticalement au centre des deux plates-formes, utilisez:
Pour une utilisation Android
textAlignVertical: "center"
Pour une utilisation iOS
justifyContent: "center"
la source