Wyobraźmy sobie prostą Scrollview z wieloma TextInputs jakReact Native wymaga dwóch kurków do zmiany sygnału wejściowego ostrość, gdy w ciągu Scrollview
<ScrollView style={styles.container}>
<TextInput style={styles.input} />
<TextInput style={styles.input} />
</ScrollView>
Kiedy wprowadzić pierwsze wejście, klawiatura otwiera i mogę wpisać tekst. Kiedy chcę zmienić na drugie wejście, muszę dwukrotnie nacisnąć - pierwszy typ zamyka klawiaturę, a tylko drugie naciśnięcie otwiera klawiaturę dla drugiego wejścia.
Jednym z rozwiązań jest użycie keyboardShouldPersistTaps={true}
- przełączanie działa dobrze, ale klawiatura wcale nie jest zamknięta, a klawiatura może obejmować niektóre z późniejszych wejść (lub przycisków). Mogę również użyć keyboardDismissMode
, jednak po prostu przeciągnij klawiaturę.
Moje pytanie brzmi, jak połączyć te dwa zachowania - w IMHO z najlepszą obsługą użytkownika - gdy kliknę inne wejście, fokus zostanie natychmiast zmieniony bez ponownego otwierania klawiatury, a kiedy kliknę gdzieś indziej, klawiatura zostanie zamknięta?
Używam RN0.22 oraz przykładową aplikację jest dostępny w https://rnplay.org/apps/kagpGw
UPDATE - Ten problem może zostały rozwiązane w RN 0,40 - patrz https://github.com/facebook/react-native/commit/552c60192172f6ec503181c060c08bbc5cbcc5a4
dziękuję ty. ta odpowiedź pomoże, jeśli klikniesz wejście, a następnie zostanie zakryta przez klawiaturę, gdy zostanie otwarta. Nie pomoże ci jednak, jeśli drugie wejście (lub przycisk) jest już pokryte - ponieważ ta sztuczka po prostu przewinie pierwszy wsunięty sygnał wejściowy do "widoku", ale nie ma gwarancji co do innych składników. – sodik