场景转换的默认弹簧动画比我预期的要慢一点,所以我想知道是否可以创建和使用自定义动画。 任何指针将不胜感激。
嗨,这是我处理 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>
);
但是,它仍然不是很有用,因为场景被放置在特殊位置,这意味着过渡方向必须与下一个场景所在的位置相匹配
从上到下或反之亦然? 它似乎只处理一维。
他们已经解决了这个问题。 您需要做的就是提供direction
属性,因为默认情况下方向是 rightToLeft。
import { I18nManager } from 'react-native'
let directionSide = I18nManager.isRTL ? 'leftToRight' : null
<Scene key='xXXXX' component={XXXXX} title='XXXXX' direction={directionSide}/>