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:
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.
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.
Install:
npm i -D react-native-keyboard-aware-scroll-view
Use:
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> ); } }