У меня есть форма, которую я хотел бы анимировать от круглой до квадратной с закругленными краями.
<Animated.View
style={[{
width : this.state.innerWidth
, height : this.state.innerWidth
, borderRadius: this.state.innerRadius
, transform : [{scale:this.state.scale}]
, backgroundColor: this.state.color
, opacity : this.state.opacityInner
}]}
/>
Я использую useNativeDriver
потому что он намного плавнее. Однако я не могу анимировать свойство borderRadius
так как оно не поддерживается собственным драйвером, и на этой странице описание ссылки здесь не предоставляет аналогичного свойства.
Кажется, работает на borderRadius
. Нативная анимация может не поддерживаться для таких свойств, как высота.
import React, { Component } from "react";
import { View, Animated } from "react-native";
class App extends Component {
state = {
borderRadius: new Animated.Value(100)
};
componentDidMount() {
Animated.timing(this.state.borderRadius, {
toValue: 16,
duration: 1200,
useNativeDriver: true
}).start();
}
render() {
return (
<View style={{ flex: 1, alignItems: "center", justifyContent: "center" }}>
<Animated.View
style={{
height: 200,
width: 200,
borderRadius: this.state.borderRadius,
backgroundColor: "red"
}}
/>
</View>
);
}
}
export default App;