Я рекомендую вам вообще не использовать KeyboardAvoidingView
для Android
, поведение клавиатуры по умолчанию в Android достаточно хорошее.
Вот пример того, как это сделать:
import { Platform } from 'react-native';
...
renderContent() {
return (
<View>
...
</View>
)
}
render() {
return (
<View>
{Platform.OS === 'android' ? this.renderContent() :
<KeyboardAvoidingView behavior='padding' enabled>
{this.renderContent()}
</KeyboardAvoidingView>}
</View>
);
}
Более короткое решение, которое также может работать для вас, состоит в том, чтобы не устанавливать свойство behavior
для Android
. Установите его только для iOS
:
import { Platform } from 'react-native';
...
render() {
return (
<View>
<KeyboardAvoidingView behavior={Platform.OS === 'android' ? '' : 'padding'} enabled>
...
</KeyboardAvoidingView>
</View>
);
}
Это из официальных документов, касающихся behavior
свойства KeyboardAvoidingView
:
Android и iOS взаимодействуют с этим объектом по-разному. Android может вести себя лучше, когда ему вообще не дают никакой поддержки, а iOS - наоборот.
Источник