Como definir windowSoftInputMode programaticamente em telas diferentes no react-native?

Oct 21 2020

Em meu aplicativo react-native, preciso de um comportamento de tela diferente em telas diferentes quando o teclado aparece.
Em algumas telas, preciso que a tela se mova para cima e, em algumas telas, não quero alterar a posição da tela, etc.

Comportamentos individuais podem ser alcançados definindo valores de android:windowSoftInputModepara adjustNothingou adjustResizeem AndroidManifest.xmlarquivo.

Mas definir esses valores no arquivo de manifesto muda o comportamento de todas as telas.

Existe uma maneira de alterá-lo programaticamente em telas diferentes?

No código do Android, parece alcançável usando uma chamada getWindow () . Como fazer isso em reagente nativo?

Respostas

1 AyeshaSaeed Nov 24 2020 at 21:38

Experimente este componente react-native-android-keyboard-ajustar

Quando o componente no qual você não deseja mover as visualizações é montado, defina AndroidKeyboardAdjust.setAdjustPan()e quando esse componente desmontar redefina-o para AndroidKeyboardAdjust.setAdjustResize()ou qualquer opção que atenda aos seus critérios

Veja esta resposta

1 Praya Oct 21 2020 at 08:38

tente usar ScrollView em vez de View e envolva-o em KeyboardAvoidingView