When textInput is clicked, the keyboardAwareScrollView works fine and scrolls up with the extra scroll height provided. But scrolls down just below the textInput when a key is pressed in Android. Works just fine in iOS. I want the extraScrollHeight to persist until the keyboard disappears.
In simpler terms, textInput is clicked, the keyboard pops up with extra 50 scroll height as given. But as a key is pressed, that extra height scrolls down.
Also open to suggestions for an alternative to KeyboardAwareScrollView.
<KeyboardAwareScrollView
enableOnAndroid={true}
extraScrollHeight={50}>
<View style={styles.inner}>
<Text style={styles.header}>Header</Text>
<TextInput placeholder="Username" style={styles.textInput} />
<View style={styles.btnContainer}>
<TextInput placeholder="Username 1" style={styles.textInput} />
<TextInput placeholder="Username 2" style={styles.textInput} />
<TextInput placeholder="Username 3" style={styles.textInput} />
<TextInput placeholder="Username 4" style={styles.textInput} />
<TextInput placeholder="Username 5" style={styles.textInput} />
<TextInput placeholder="Username 6" style={styles.textInput} />
<TextInput placeholder="Username 7" style={styles.textInput} />
<TextInput placeholder="Username 8" style={styles.textInput} />
<TextInput placeholder="Username 9" style={styles.textInput} />
<TextInput placeholder="Username 10" style={styles.textInput} />
<TextInput placeholder="Username 11" style={styles.textInput} />
<TextInput placeholder="Username 12" style={styles.textInput} />
<TextInput placeholder="Username 13" style={styles.textInput} />
<Button title="Submit" onPress={() => null} />
</View>
</View>
</KeyboardAwareScrollView>
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,
},
});
In androidManifest.xml, I have adjustPan.
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
android:launchMode="singleTask"
android:windowSoftInputMode="adjustPan">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>