Я создаю анимацию, аналогичную www.icloud.com , войдите в систему. Это означает, что когда пользователь вводит свой адрес электронной почты, появляется окно пароля с анимацией затухания. Ниже я хочудля достижения.
Мой код
Однако для этого я создал следующий код.
constructor () {
super()
this.animatedValue = new Animated.Value(0)
}
state ={
hideEmail:false,
}
animate () {
this.animatedValue.setValue(0)
Animated.timing(
this.animatedValue,
{
toValue: 1,
duration: 1000,
easing: Easing.linear
}
).start()
}
render() {
const marginTop = this.animatedValue.interpolate({
inputRange: [0, 1],
outputRange: [0, 100]
})
return (
<View style={styles.container}>
<View style={{paddingBottom:10}}>
<TextInput
placeholder='Registered Email'
returnKeyType='go'
style={{borderWidth:0.5}}
onSubmitEditing = {(event) => this.getData()}>
</TextInput>
</View>
<Animated.View style={{marginTop,opacity:!this.state.hideEmail?0:1}}>
<TextInput
placeholder='Code'
style={{borderWidth:0.5}}>
</TextInput>
</Animated.View>
</View>
);
getData = (email) => {
// Validate and if it's correct email, below code will run
this.animate();
this.setState({hideEmail:true});
}
Здесь я использовал состояние hideEmail
, чтобы изменить непрозрачность Code
Вид, чтобы сделать его скрытым и видимым.Тем не менее, это то, что, когда пользователь вводит электронное письмо, оно будет проверено, и остальная часть кода getData () запустится и запустит анимацию, сделав видимым Code View
.
Проблемы
Есть две проблемы.
Как вы можете видеть, когда типы писем (я не проверял это должным образом.Просто чтобы показать, как это работает) и вводится, появляется окно кода и начинается анимация.Но есть две проблемы.
1) Первое поле (ящик электронной почты) также перемещается вместе с полем Код.
2) Анимация не плавная.Граница появляется и исчезает.Что раздражает и не красиво.
Так как я могу их исправить?Я попробовал все, изменив мой код, но ничего не помогло.