シーントランジションのデフォルトの春のアニメーションは予想よりも少し遅いので、カスタムアニメーションを作成して使用できるかどうか疑問に思っています。 任意のポインタをいただければ幸いです。
こんにちは、これが私が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次元しか扱えないようです。
彼らはすでにこの問題を修正しています。 デフォルトでは方向がrightToLeftであるため、必要なのはdirection
プロパティを提供することだけです。
import { I18nManager } from 'react-native'
let directionSide = I18nManager.isRTL ? 'leftToRight' : null
<Scene key='xXXXX' component={XXXXX} title='XXXXX' direction={directionSide}/>