L'animation de printemps par défaut lors de la transition de scène est un peu plus lente que prévu, donc je me demande s'il est possible de créer et d'utiliser une animation personnalisée. Tout pointeur serait apprécié.
Salut, voici comment je l'ai fait pour gérer les langues rtl (comme l'arabe, pour que la transition se fasse de droite à gauche.
rtlAwareAnimation(pos, navState) {
const factor = I18n.rtl() ? -1 : 1;
Animated.spring(
pos,
{
bounciness: 0,
toValue: factor*navState.index,
}
).start();
},
render() {
return (
<Router>
<Scene key="signIn" component={SignIn} title={I18n.t('signIn')} initial={true} applyAnimation={this.rtlAwareAnimation} />
<Scene key="dashboard" component={Dashboard}applyAnimation={this.rtlAwareAnimation} />
</Router>
);
Cependant, ce n'est toujours pas vraiment utile car les scènes sont placées dans des positions spéciales, ce qui signifie que la direction de transition doit correspondre à l'endroit où se trouve la scène suivante.
Comment serait-ce de haut en bas ou vice versa? il semble ne gérer qu'une seule dimension.
Ils ont déjà résolu ce problème. Tout ce que vous avez à faire est de fournir la propriété direction
car par défaut la direction est rightToLeft.
import { I18nManager } from 'react-native'
let directionSide = I18nManager.isRTL ? 'leftToRight' : null
<Scene key='xXXXX' component={XXXXX} title='XXXXX' direction={directionSide}/>