La animación de resorte predeterminada en la transición de escena es un poco más lenta de lo que esperaba, por lo que me pregunto si es posible crear y usar una animación personalizada. Cualquier puntero sería apreciado.
Hola, así es como lo hice para manejar idiomas rtl (como el árabe, para que la transición sea de derecha a izquierda).
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>
);
Sin embargo, todavía no es realmente útil ya que las escenas se colocan en posiciones especiales, lo que significa que la dirección de transición debe coincidir con el lugar donde se encuentra la siguiente escena.
¿Cómo sería de arriba hacia abajo o viceversa? parece manejar solo 1 dimensión.
Ya han solucionado este problema. Todo lo que necesita hacer es proporcionar la propiedad direction
porque, de manera predeterminada, la dirección es de derecha a izquierda.
import { I18nManager } from 'react-native'
let directionSide = I18nManager.isRTL ? 'leftToRight' : null
<Scene key='xXXXX' component={XXXXX} title='XXXXX' direction={directionSide}/>