react-native-keyboard-controller
Keyboard manager which works in identical way on both iOS and Android.
Note: This library is still in development and in alpha
stage. So most likely it has bugs/issues - don't hesitate to report if you find them 🙂.
Demonstration
- mapping keyboard appearance to animated values 😎
- missing
keyboardWillShow
/keyboardWillHide
events are available on Android 😍 - module for changing soft input mode on Android 🤔
- reanimated support 🚀
- interactive keyboard dismissing (planned) 👆📱
- and more is coming... Stay tuned! 😊
Installation
Install react-native-keyboard-controller
package from npm:
yarn add react-native-keyboard-controller
Usage
For more comprehensive usage you can have a look on example.
Below you can see a short overview of library API:
import {
KeyboardProvider,
useKeyboardAnimation,
} from 'react-native-keyboard-controller';
<KeyboardProvider>
<AppContainer />
</KeyboardProvider>
const { height, progress } = useKeyboardAnimation();
<Animated.View
style={{
width: 50,
height: 50,
backgroundColor: 'red',
borderRadius: 25,
// the element will move up with the keyboard
transform: [{ translateY: height }],
}}
/>
<Animated.View
style={{
width: 50,
height: 50,
backgroundColor: 'green',
borderRadius: 25,
transform: [
{
// or use custom interpolation using `progress`
translateX: progress.interpolate({
inputRange: [0, 1],
outputRange: [0, 100],
}),
},
],
}}
/>
Contributing
See the contributing guide to learn how to contribute to the repository and the development workflow.
License
MIT