Die Texteingabe ist mittig ausgerichtet. So korrigieren Sie diese Texteingabe so, dass sie von der oberen linken Ecke eingegeben wird
Hier ist mein CSS für die Texteingabe
/* 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
quelle
quelle
Antworten:
Ich hatte das gleiche Problem, aber die obigen Hinweise haben es nicht gelöst. Es gibt eine android-only - Stil Eigenschaft ,
textAlignVertical
dass behebt dieses Problem auf mehrzeilige Eingaben.dh
textAlignVertical: 'top'
quelle
multiline={true}
in Android.textAlignVertical
es nur für Android ist?TextInput verfügt über eine Standardauffüllung. Überschreiben Sie diese, indem Sie Folgendes festlegen:
paddingTop: 0, paddingBottom: 0
Github-Problem
quelle
Ich habe die Lösung gefunden, dass in Android der TextInput-Stil
textAlignVertical: 'top'
funktioniert. aber in ios funktioniert TextInput propmultiline={true}
.quelle
Ich hatte einen ähnlichen Anwendungsfall in meiner iOS-App, in der
TextInput
die Höhe 100 betrug und der Platzhalter in der Mitte angezeigt wurde. Ich habe verwendetmultiline={true}
und es ließ den Text von oben erscheinen. Hoffentlich hilft das.quelle
Geben Sie
textAlignVertical : "top"
das wird Ihr Problem lösen.<TextInput placeholder="Your text post" multiline={true} numberOfLines={10}, maxLength={1000} style={{ borderWidth: 1, backgroundColor: "#e3e3e3", textAlignVertical : "top" }} />
quelle
Update 03.07.2015: Mehrzeilige Texteingaben wurden jetzt zusammengeführt:
https://github.com/facebook/react-native/pull/991
Die mehrzeiligen Beispiele , die im UI-Explorer mit React Native geliefert werden, sollten wie dokumentiert funktionieren.
Das Problem ist, dass der mehrzeilige TextInput noch nicht richtig funktioniert und die Dokumente irreführend sind. Bitte beachten Sie diese Github-Ausgabe:
https://github.com/facebook/react-native/issues/279
In dieser Ausgabe befindet sich Code, der nur minimale mehrzeilige Funktionen bietet, sodass Sie ihn möglicherweise zum Laufen bringen können.
quelle
Es hat bei mir funktioniert (RN 0.61.5):
<TextInput style={{textAlignVertical:'top', paddingTop: 0, paddingBottom:0 }} />
quelle
Nur für den Fall, dass Sie nach Code suchen:
<TextInput placeholder={'comment goes here!'} multiline style={{textAlignVertical:'top', ...otherStyle}} />
quelle
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, },
quelle
Ich habe per Element Inspector herausgefunden, dass es für iOS ein
paddingTop: 5
formultiline
TextInput
s gibt. Dies wurde immer noch angewendet, obwohl ichpaddingVertical: 15
alle meine Eingaben festgelegt habe. Das Ergebnis war ein nicht zentrierter Text in mehrzeiligen Eingaben unter iOS. Die Lösung wurde zusätzlich ein hinzufügen ,paddingTop: 15
wenn dieTextInput
istmultiline
und die Plattform iOS. Jetzt gibt es visuell keinen Unterschied zwischen einzeiligen und mehrzeiligen Eingängen auf beiden Plattformen, Android und iOS.quelle
Ich denke, es ist Standard für iOS, für Android in meinem Fall das Hinzufügen
paddingVertical: 0,
zum Textstil funktioniert.quelle
Verwenden Sie Folgendes, um Text auf beiden Plattformen vertikal mittig auszurichten.
Für Android
textAlignVertical: "center"
Für ios verwenden
justifyContent: "center"
quelle