Grundsätzlich benötigen Sie eine animierte x-Wert eingestellt - (Breite Ihres Platz), so dass in diesem Fall -100, und legen Sie einen dynamischen Stil zu einem Animated.View. Der Trick besteht darin, einfach eine Animation aufzurufen, die von Animation.spring bearbeitet wird (aber Sie könnten Animation.timing oder eine der Methoden verwenden, die von Animated API angeboten werden) und setting transform: [{translateX: myAnimatedValue}].
Es ist wirklich nicht so anders als CSS3 verwandelt. Sie haben ein Element außerhalb der Leinwand und machen es für den Benutzer nach und nach sichtbar. Ich hoffe, das könnte nützlich sein.
import React, { Component } from 'react';
import {
View,
Animated
} from 'react-native';
// const styles = ...
export default class SlidingExample extends Component {
state = {
visible: false,
x: new Animated.Value(-100),
};
slide =() => {
Animated.spring(this.state.x, {
toValue: 0,
}).start();
this.setState({
visible: true,
});
};
render() {
// in practice you wanna toggle this.slide() after some props validation, I hope
this.slide();
return (
<View>
<Animated.View
style={[styles.slideView, {
transform: [
{
translateX: this.state.x
}
]
}]}
>
{/* your content, such as this.props.children */}
</Animated.View>
</View>;
);
}
}
Was wäre in styles.SlideView? Stil einer Animation oder Stil eines Schiebeelements? – misi06
Stil des Schiebeelements, wie backgroundColor oder so ähnlich. –
Ich bin wirklich neu in React Native und ich kämpfe. Ich versuche, es so zu verwenden, aber ich bekomme Fehler "Argument 0 (NSNumber) von UIManager muss nicht null sein: render() { this.slide(); zurückgeben ( Test ); } –
misi06