Я пытаюсь создать новое простое приложение. Во время этого процесса я решил начать со страницы входа и страницы регистрации. Эти страницы имеют одинаковый стиль, где верхняя треть экрана представляет собой контейнер с lo go, а нижние две трети - это форма с полями ввода.
Проблема в том, что я сейчас застряло то, что все выглядит отлично, но когда вы нажимаете один из входов, клавиатура покрывает большинство входов. Я провел небольшое исследование и попытался применить ScrollView и KeyboardAvoidingView, но ни один из них не работает должным образом.
Вот как настроена моя страница:
<View style={styles.screen}>
{this.state.loading && (
<View style={styles.loading}>
<ActivityIndicator
color={primaryColor}
size="large"
/>
</View>
)}
<View style={styles.logoContainer}>
<Image source={require('../../../assets/logo.png')} style={styles.logo} />
</View>
<View style={styles.formContainer}>
<KeyboardAvoidingView
behavior={'padding'}
enabled
style={styles.form}
>
<FloatingLabelInput
blurOnSubmit={false}
editable={true}
keyboardType={'email-address'}
label="Email"
onChangeText={this.handleEmailChange}
onSubmitEditing={() => this.passwordInput && this.passwordInput.focus()}
ref={(input) => { this.emailInput = input; }}
returnKeyType="next"
value={this.state.email}
/>
<FloatingLabelInput
editable={true}
label="Password"
onChangeText={this.handlePasswordChange}
onSubmitEditing={() => this.signup()}
ref={(input) => { this.passwordInput = input; }}
secureTextEntry={true}
value={this.state.password}
/>
</KeyboardAvoidingView>
<View style={styles.buttonContainer}>
<Button buttonFunction={() => this.signup()} buttonStyle={'primary'} buttonText={'Sign Up'} />
</View>
</View>
</View>
Мне кажется, что я исчерпал большинство решений, но я, должно быть, упускаю что-то решающее.