2017-05-30 8 views
0

KeyboardAvoidingViewを正しく動作させるのに問題があります。同様の画面ではスムーズに動作しますが、別の画面ではコンテンツが画面上で大きく押し上げられ、その間に余分なスペースが追加されます。すべての修正?KeyboardAvoidingViewが余分な埋め込みでコンテンツをプッシュアップしているネイティブで反応します

enter image description here

コード:

<KeyboardAvoidingView behavior="padding" style={styles.container}> 
     {this.props.signNameErr && 
      (<Text style={{color: 'red'}}>{this.props.errMessage}</Text>) 
      } 
     <View style={styles.formContainer}> 
     <TextInput 
      style={styles.formInput} 
      placeholderTextColor="rgba(255,255,255,0.7)" 
      underlineColorAndroid='rgba(0,0,0,0)' 
      returnKeyType="next" 
      autoCorrect={false} 
      onChangeText={(full_name)=> this.setState({full_name})} 
      value={this.state.fullname} 
      placeholder="Enter Full Name" 
      /> 
      {this.props.signEmailErr && 
      (<Text style={{color: 'red'}}>{this.props.errMessage}</Text>) 
      } 
     <TextInput 
      style={styles.formInput} 
      placeholderTextColor="rgba(255,255,255,0.7)" 
      underlineColorAndroid='rgba(0,0,0,0)' 
      returnKeyType="next" 
      keyboardType="email-address" 
      autoCapitalize="none" 
      autoCorrect={false} 
      onChangeText={(email)=> this.setState({email})} 
      value={this.state.email} 
      placeholder="Enter Email" 
      keyboardType="email-address" 
      /> 
      {this.props.signPwErr && 
      (<Text style={{color: 'red'}}>{this.props.errMessage}</Text>) 
      } 
     <TextInput 
      style={styles.formInput} 
      placeholderTextColor="rgba(255,255,255,0.7)" 
      underlineColorAndroid='rgba(0,0,0,0)' 
      returnKeyType="next" 
      autoCorrect={false} 
      onChangeText={(password)=> this.setState({password})} 
      secureTextEntry={this.state.togglePW} 
      value={this.state.password} 
      placeholder="Create Password (Min. 6 Char)" 
      /> 
     <TouchableOpacity style={styles.buttonContainer} onPress={this.handleSignup}> 
      <Text style={styles.buttonText}>SIGN UP</Text> 
     </TouchableOpacity> 
     </View > 
     </KeyboardAvoidingView> 

答えて

2

あなたはパディングを設定することができ、あなたもAndroidとiOS

import {KeyboardAvoidingView,Platform,} from 'react-native'; 

<KeyboardAvoidingView 
    behavior='padding' 
    keyboardVerticalOffset={ 
    Platform.select({ 
    ios:() => 0, 
    android:() => 200 
    })() 
}> 
    ...content... 
</KeyboardAvoidingView> 

のためだけの例を設定することができ、それを試してみると、どのように設定します好き。

+1

ありがとう、芽 - これは私を救った! –

関連する問題