2017-07-08 1 views
0

J'essaie de créer un pied de page collant avec le composant KeyboardAvoidingView dans React Native. Je suis très proche de l'accomplissement de cette tâche, cependant, quand le clavier se lève, le pied de page remonte mais rétrécit en même temps.React Native - KeyboardAvoidingView avec pied de page collant

est ici à quoi il ressemble avant que le clavier arrive:

enter image description here

Et voici à quoi il ressemble après le clavier arrive:

enter image description here

Comme vous pouvez le voir, le conteneur de soumission est plus petit qu'il ne l'est avant qu'il y ait un clavier.

Voici mon code actuel:

render() {  
    return (
    <KeyboardAvoidingView style={{ flex: 1 }} behavior="padding"> 
     <View style={{ flex: 1, }}> 
     <TextInput 
      placeholder="Username" 
      value={this.state.username} 
      style={Styles.textInput} 
      onChangeText={(username) => this.setState({ username })} 
      autoCorrect={false} 
     /> 
     <TextInput 
      style={Styles.textInput} 
      placeholder="Email" 
      value={this.state.email} 
      onChangeText={(email) => this.setState({ email })} 
      autoCorrect={false} 
     /> 
     </View> 
     <View style={{ height: 100, backgroundColor: 'blue' }}> 
     <Text>Submit</Text> 
     </View> 
    </KeyboardAvoidingView> 
); 

Qu'est-ce que je fais mal?

+0

Vous n'avez jamais mentionné de comportement prévu. Qu'est-ce que tu veux qu'il arrive? Avec la façon dont vous avez écrit le code, il fait exactement ce qu'il devrait faire. –

+0

Je veux qu'il pousse le pied vers le haut, sans le redimensionner pour être plus petit que lorsque le clavier est en panne @MichaelCheng – Thomas

+0

Si la hauteur de la vue de dessous (la bleue) était seulement '30', elle serait masquée par le clavier @MichaelCheng – Thomas

Répondre

0

Essayez le code suivant, mettez le pied de page sur la couche externe de scrollview et keyboardAvoidingView.

<ScrollView padder scrollEnabled={true}> 
    <KeyboardAvoidingView 
    behavior="padding" 
    keyboardVerticalOffset={70} 
    > 
    <View style={{ flex: 1, }}> 
    <TextInput 
     placeholder="Username" 
     value={this.state.username} 
     style={Styles.textInput} 
     onChangeText={(username) => this.setState({ username })} 
     autoCorrect={false} 
    /> 
    <TextInput 
     style={Styles.textInput} 
     placeholder="Email" 
     value={this.state.email} 
     onChangeText={(email) => this.setState({ email })} 
     autoCorrect={false} 
    /> 
    </View> 
</KeyboardAvoidingView> 
</ScrollView> 
<View style={{ height: 100, backgroundColor: 'blue' }}> 
    <Text>Submit</Text> 
</View>