Wprowadzanie tekstu jest wyśrodkowane, jak naprawić to wejście tekstu, aby pobierało dane z lewego górnego rogu
Oto mój CSS do wprowadzania tekstu
/* 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
źródło
źródło
Odpowiedzi:
Miałem ten sam problem, ale powyższe uwagi go nie rozwiązały. Istnieje właściwość stylu tylko dla systemu Android,
textAlignVertical
która rozwiązuje ten problem na wejściach wielowierszowych.to znaczy
textAlignVertical: 'top'
źródło
multiline={true}
Android.textAlignVertical
jest tylko na Androida?TextInput ma domyślne dopełnienie, zastąp je przez ustawienie:
paddingTop: 0, paddingBottom: 0
Wydanie Github
źródło
Znalazłem rozwiązanie, które w Androidzie
textAlignVertical: 'top'
działa styl TextInput . ale w iOSmultiline={true}
działa właściwość TextInput .źródło
Miałem podobny przypadek użycia w mojej aplikacji na iOS, gdzie
TextInput
wysokość wynosiła 100, a symbol zastępczy był wyświetlany na środku. Użyłemmultiline={true}
i sprawiło, że tekst pojawił się z góry. Mam nadzieję, że to pomoże.źródło
Podaj,
textAlignVertical : "top"
że rozwiąże Twój problem.<TextInput placeholder="Your text post" multiline={true} numberOfLines={10}, maxLength={1000} style={{ borderWidth: 1, backgroundColor: "#e3e3e3", textAlignVertical : "top" }} />
źródło
Aktualizacja 2015-07-03: wielowierszowe wprowadzanie tekstu zostało scalone:
https://github.com/facebook/react-native/pull/991
Te przykłady multilinii , że statek z reagują native w UI Explorer powinien działać zgodnie z dokumentacją.
Problem polega na tym, że wielowierszowe TextInput nie działa jeszcze poprawnie, a dokumenty wprowadzają w błąd. Zobacz ten problem na Github:
https://github.com/facebook/react-native/issues/279
W tym wydaniu jest kod, który zapewnia minimalną funkcjonalność wielowierszową, więc możesz być w stanie go z tym uruchomić.
źródło
U mnie zadziałało (RN 0,61,5):
<TextInput style={{textAlignVertical:'top', paddingTop: 0, paddingBottom:0 }} />
źródło
Just Incase szukasz kodu:
<TextInput placeholder={'comment goes here!'} multiline style={{textAlignVertical:'top', ...otherStyle}} />
źródło
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, },
źródło
Dowiedziałem się na inspektora elementów, że dla iOS istnieje
paddingTop: 5
formultiline
TextInput
s. To było nadal stosowane, mimo że ustawiłempaddingVertical: 15
dla wszystkich moich danych wejściowych. Rezultatem był nie wyśrodkowany tekst w wielowierszowych wejściach w systemie iOS. Rozwiązaniem było dodanie dodatkowo,paddingTop: 15
jeśliTextInput
jest,multiline
a platformą jest iOS. Teraz wizualnie nie ma różnicy między wejściami pojedynczej linii i wieloliniowymi na obu platformach, Android i iOS.źródło
Aby wyśrodkować tekst w pionie na obu platformach, użyj:
Do użytku na Androida
textAlignVertical: "center"
Do użytku na iOS
justifyContent: "center"
źródło