Jak programowo ustawić windowSoftInputMode na różnych ekranach w React-Native?
W mojej aplikacji natywnej reagowania potrzebuję różnych zachowań ekranu na różnych ekranach, gdy pojawia się klawiatura.
Na niektórych ekranach potrzebuję ekranu, aby przesunąć się w górę, a na niektórych nie chcę zmieniać pozycji ekranu itp.
Poszczególne zachowania można osiągnąć, ustawiając wartości android:windowSoftInputModeto adjustNothinglub adjustResizein AndroidManifest.xmlfile.
Ale ustawienie tych wartości w pliku manifestu zmienia zachowanie na wszystkich ekranach.
Czy istnieje sposób, aby zmienić to programowo na różnych ekranach?
W kodzie Androida wygląda to na osiągalne przy użyciu wywołania getWindow () . Jak to zrobić w React-Native?
Odpowiedzi
Wypróbuj ten komponent react-native-android-keyboard-adjust
Kiedy komponent, w którym nie chcesz przesuwać w górę widoków, jest montowany, ustaw AndroidKeyboardAdjust.setAdjustPan()i kiedy ten komponent odmontuje, zresetuj go do AndroidKeyboardAdjust.setAdjustResize()lub jakiejkolwiek opcji, która pasuje do twoich kryteriów
Zobacz tę odpowiedź
spróbuj użyć ScrollView zamiast View, a następnie zawiń go na KeyboardAvoidingView