Весенняя анимация по умолчанию при переходе сцены немного медленнее, чем я ожидал, поэтому мне интересно, можно ли создать и использовать пользовательскую анимацию. Любой указатель будет оценен.
Привет, вот как я это сделал для обработки rtl-языков (таких как арабский, чтобы переход был справа налево.
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>
);
Тем не менее, это все еще не очень полезно, поскольку сцены размещаются в специальных позициях, а это означает, что направление перехода должно совпадать с местом, где находится следующая сцена.
Как это будет сверху вниз или наоборот? кажется, он обрабатывает только 1 измерение.
Они уже исправили эту проблему. Все, что вам нужно сделать, это предоставить свойство direction
, потому что по умолчанию направление справа налево.
import { I18nManager } from 'react-native'
let directionSide = I18nManager.isRTL ? 'leftToRight' : null
<Scene key='xXXXX' component={XXXXX} title='XXXXX' direction={directionSide}/>