Skip to main content

KeyboardAvoidingView

This component will automatically adjust its height, position, or bottom padding based on the keyboard height to remain visible while the virtual keyboard is displayed.

info

On Windows it follows the touch keyboard through the events Keyboard sends, which have not been tested on touch hardware. On macOS and Linux there are no keyboard events, so it lays out as a plain View. Use it in code shared with iOS and Android; it changes nothing on desktop.

Exampleโ€‹

React JSX
import {
View,
KeyboardAvoidingView,
TextInput,
StyleSheet,
Text,
Platform,
TouchableWithoutFeedback,
Button,
Keyboard,
} from 'react-native';

const KeyboardAvoidingComponent = () => {
return (
<KeyboardAvoidingView
behavior={Platform.OS === 'ios' ? 'padding' : 'height'}
style={styles.container}
>
<TouchableWithoutFeedback onPress={Keyboard.dismiss}>
<View style={styles.inner}>
<Text style={styles.header}>Header</Text>
<TextInput placeholder="Username" style={styles.textInput} />
<View style={styles.btnContainer}>
<Button title="Submit" onPress={() => null} />
</View>
</View>
</TouchableWithoutFeedback>
</KeyboardAvoidingView>
);
};

const styles = StyleSheet.create({
container: {
flex: 1,
},
inner: {
padding: 24,
flex: 1,
justifyContent: 'space-around',
},
header: {
fontSize: 36,
marginBottom: 48,
},
textInput: {
height: 40,
borderColor: '#000000',
borderBottomWidth: 1,
marginBottom: 36,
},
btnContainer: {
backgroundColor: 'white',
marginTop: 12,
},
});

export default KeyboardAvoidingComponent;

Reference

Propsโ€‹

View Propsโ€‹

Inherits View Props.


behaviorโ€‹

Specify how to react to the presence of the keyboard.

Type
enum('height', 'position', 'padding')

contentContainerStyleโ€‹

The style of the content container (View) when behavior is 'position'.


enabledโ€‹

Enabled or disabled KeyboardAvoidingView.

TypeDefault
booleantrue

keyboardVerticalOffsetโ€‹

This is the distance between the top of the user screen and the react native view, may be non-zero in some use cases.

TypeDefault
number0