Как программно установить windowSoftInputMode на разных экранах в react-native?

Oct 21 2020

В моем приложении, поддерживающем реакцию, мне нужно различное поведение экрана на разных экранах при появлении клавиатуры.
На некоторых экранах мне нужно, чтобы экран двигался вверх, а на некоторых экранах я не хочу менять положение экрана и т. Д.

Отдельные модели поведения может быть достигнуто путем установки значений android:windowSoftInputModeв adjustNothingили adjustResizeв AndroidManifest.xmlфайле.

Но установка этих значений в файле манифеста изменяет поведение всех экранов.

Есть ли способ изменить это программно на разных экранах?

В коде Android это выглядит достижимым с помощью вызова getWindow () . Как это сделать в react-native?

Ответы

1 AyeshaSaeed Nov 24 2020 at 21:38

Попробуйте этот компонент react-native-android-keyboard-adjust

Когда компонент, в котором вы не хотите перемещать представления, монтируется, установите, AndroidKeyboardAdjust.setAdjustPan()а когда этот компонент отключен, сбросьте его AndroidKeyboardAdjust.setAdjustResize()или любой другой вариант, который соответствует вашим критериям

См. Этот ответ

1 Praya Oct 21 2020 at 08:38

попробуйте использовать ScrollView вместо View, затем оберните его KeyboardAvoidingView