When you bring up the on screen keyboard in a mobile app, it will cover any text input or buttons on the bottom half of the screen, which can be frustrating for users. There are a few common ways to deal with this in React Native - and this video shows the following solutions:react
First, you can use the built in KeyboardAvoidingView
to move components around when the keyboard comes on screen. It has the advantage to being built in to React Native already - but it can be overly complicated to get this approach to work consistently across both iOS and Android.npm
There is also a third party library called KeyboardAwareScrollView
, which will allow your entire view to scroll, and will keep the currently selected text inputs up and out of the way of the keyboard.react-native
Install:app
npm i -D react-native-keyboard-aware-scroll-view
Use:ide
import { KeyboardAwareScrollView } from 'react-native-keyboard-aware-scroll-view' export default class App extends Component { render() { return ( <KeyboardAwareScrollView style={{ flex: 1 }} > <View style={styles.loginHeader}> <Text style={styles.headerText}>App Name</Text> </View> <View style={styles.loginInputs}> <Text style={styles.label}>Username</Text> <TextInput placeholder="Username" style={styles.input} /> <Text style={styles.label}>Password</Text> <TextInput placeholder="Password" style={styles.input} secureTextEntry={true} /> <TouchableOpacity style={styles.loginButton}> <Text style={styles.loginText}>Login</Text> </TouchableOpacity> </View> </KeyboardAwareScrollView> ); } }