Skip to main content

Keyboard Handling

Keyboard handling is one of the main feature of BottomSheet v4, thanks to the effort of the community to spot issues, test and help to debug the implementation on both platform iOS & Android.

To handle the keyboard appearance, I have simplified the approach by creating a pre-integrated TextInput called BottomSheetTextInput, which communicate internally to react to the keyboard appearance.

Also I have introduce two props to allow users to customize the handling, keyboardBehavior, keyboardBlurBehavior and android_keyboardInputMode that is only for Android.

tip

To use custom TextInput, you will need to copy the handleOnFocus and handleOnBlur from BottomSheetTextInput into your own component.

Exampleโ€‹

Here is an example of a simple keyboard handling:

import React, { useMemo } from "react";
import { View, StyleSheet } from "react-native";
import BottomSheet, { BottomSheetTextInput } from "@gorhom/bottom-sheet";

const App = () => {
// variables
const snapPoints = useMemo(() => ["25%"], []);

// renders
return (
<View style={styles.container}>
<BottomSheet snapPoints={snapPoints}>
<View style={styles.contentContainer}>
<BottomSheetTextInput value="Awesome ๐ŸŽ‰" style={styles.textInput} />
</View>
</BottomSheet>
</View>
);
};

const styles = StyleSheet.create({
container: {
flex: 1,
padding: 24,
backgroundColor: "grey",
},
textInput: {
alignSelf: "stretch",
marginHorizontal: 12,
marginBottom: 12,
padding: 12,
borderRadius: 12,
backgroundColor: "grey",
color: "white",
textAlign: "center",
},
contentContainer: {
flex: 1,
alignItems: "center",
},
});

export default App;