Switch navigator for use on iOS and Android, allowing custom transitions on switching.
It also includes a FadeTransition to use in your screens to get cross-fading for the switch navigator
Open a Terminal in your project's folder and run,
yarn add react-navigation-switch-transitioner
Create your Switch Navigator with the same parameters than the react-navigation one.
There are 2 options to add transitions to your Screens:
This library provides two HOCs: withTransition
and withFadeTransition
which you can use to wrap your screens. The first one allows you to inject any transition to your screen, while the second one uses the provided FadeTransition.
import { createSwitchNavigator, FadeTransition, withTransition, withFadeTransition } from 'react-navigation-switch-transitioner'
export default createSwitchNavigator({
Inbox: withTransition(FadeTransition)(InboxScreen)
Drafts: withFadeTransition(DraftsScreen),
}, {
initialRouteName: 'Inbox',
})
If you want your screens to Fade on transitioning to/from them, wrap them in the FadeTransition component and expose its navigationOptions (don't forget to pass the received props to the FadeTransition)
import { FadeTransition } from 'react-navigation-switch-transitioner'
class DraftScreen extends React.Component {
static navigationOptions = FadeTransition.navigationOptions
render() {
return (
<FadeTransition {...this.props}>
<View
style={{
flex: 1,
justifyContent: 'center',
backgroundColor: '#eee',
}}
>
<Text>Drafts</Text>
</View>
</FadeTransition>
)
}
}
It is mostly compatible with the react-navigation SwitchNavigator
so the best place to start while documention is created is the React Navigation website.
If you want to implement your own transition take a look at the source code for the FadeTransition.
To run the example app do the following:
git clone https://github.com/elyalvarado/react-navigation-switch-transitioner
cd react-navigation-switch-transitioner
yarn install
cd examples
yarn install
yarn start