Skip to content

[KeyboardAvoidingView] Possible bug on android when typing on text input #14967

Description

@scerelli

Is this a bug report?

Yes

Have you read the Bugs section of the Contributing to React Native Guide?

Yes

Environment

react-native-cli: 2.0.1
react-native: 0.46.1
npm 5.0.3
node 8.1.3
0.27.5

Target Platform: Android 7.1.1 and 8.0
OS: OSX 10.12.5

Steps to Reproduce

  1. Place an input inside a flex: 1
  2. Type something
  3. IT breaks

Expected Behavior

Keep the ui consistent while i'm typing

Actual Behavior

When Input value is not empty the ui looks different

Here a gif that shows the issue: https://cl.ly/1Y2z0J1p1i2L

Reproducible Demo

Code:

Render return

 <View style={{flex: 1}}>
<Animatable.View animation="scaleDown" easing="ease-out" delay={150} style={[styles.wrapper, {backgroundColor: 'red'}]}>
<View style={styles.overlay} />
</Animatable.View>
<View style={styles.screen}>
<View style={styles.top}>
<Animatable.View animation={this.state.entryAnimationEnd ? 'fadeIn' : null} style={styles.welcomeWrapper}>
<Text style={[styles.welcomeText, styles.welcomeTitle]}>Welcome</Text>
<Text style={styles.welcomeText}>test</Text>
</Animatable.View>
</View>
<KeyboardAvoidingView style={styles.bottom} behavior="padding">
<View style={[styles.inputsBg, {top: triangleHeight}]} />
<TextInput
ref={(textInput) => this.textInput = textInput}
autoCapitalize="none"
validator="url"
tintColor="#999"
containerStyle={styles.textField}
label={I18n.t('login.Platform URL')} />
<View style={styles.buttonWrapper}>
<Button
fullWidth
onPress={this.bootstrapAttempt}
disabled={this.props.appConfig.remoteFetching === 'LOADING'}
type="neutral">
Go to login
</Button>
</View>
</KeyboardAvoidingView>
</View>
</View>

style

export default StyleSheet.create({
screen: {
flex: 1,
flexDirection: 'column',
justifyContent: 'space-around'
},
textField: {
marginLeft: 16,
marginRight: 16
},
overlay: {
...StyleSheet.absoluteFillObject,
backgroundColor: 'black',
opacity: 0.4,
zIndex: 1
},
bgImage: {
...StyleSheet.absoluteFillObject,
width: null,
height: null,
resizeMode: 'cover',
zIndex: 0
},
wrapper: {
...StyleSheet.absoluteFillObject
},
top: {
flex: 1
},
bottom: {
flex: 1
},
inputsBg: {
backgroundColor: '#f5f5f5',
...StyleSheet.absoluteFillObject
}
});

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions