Animated splash screen component for React Native project.
npm install react-native-animated-splash-screen
SplashAnimated example app.
yarn add react-native-animated-splash-screen
npm install --save react-native-animated-splash-screen
javascript
import AnimatedSplash from "react-native-animated-splash-screen";
render() {
return (
translucent={true}
isLoaded={this.state.isLoaded}
logoImage={require("./assets/logo.png")}
backgroundColor={"#262626"}
logoHeight={150}
logoWidth={150}
>
);
}
`
Props
| Name | Description | Type | Required | Default Value |
| :--------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------- | :------: | :---------------------------------------------------------: |
| isLoaded | Condition to show children component and finish the animation. | Boolean | ✓ | false |
| backgroundColor | Splash screen background color. | String | | !#f00 '#f00' |
| logoImage | Splash screen logo image. | Object | | null |
| logoWidth | Logo image width in px. | Number | | 150 |
| logoHeight | Logo image height in px. | Number | | 150 |
| children | Children to render inside this component. | Node | | null |
| preload | Condition to load children component while wait isLoaded prop be True. | Boolean | | true |
| disableBackgroundImage | Disable the background image | Boolean | | false |
| translucent | When translucent is set to true, the app will draw under the status bar. Example: here! | Boolean | | false |
| customComponent | Add a logo component instead of a logo image. | React Component | | null |
Example with React Navigation
`javascript
const AppNavigator = createStackNavigator(
{
home: {
screen: HomeScreen,
navigationOptions: {
header: null,
},
},
dashboard: {
screen: DashboardScreen,
navigationOptions: {
title: "Dashboard",
},
},
},
{
initialRouteName: "home",
}
)
const Container = createAppContainer(AppNavigator)
class App extends React.Component {
state = {
isLoaded: false,
}
async componentDidMount() {
await loadAsync()
this.setState({ isLoaded: true })
}
render() {
return (
translucent={true}
isLoaded={this.state.isLoaded}
logoImage={require("./assets/logo.png")}
backgroundColor={"#262626"}
logoHeight={150}
logoWidth={150}
>
)
}
}
export default App
`
Example with React Navigation (setting isLoaded inside a screen of navigator)
#### Navigator
`javascript
const AppNavigator = createSwitchNavigator(
{
home: {
screen: props => (
),
},
dashboard: { screen: DashboardScreen },
},
{
initialRouteName: "home",
}
)
const Container = createAppContainer(AppNavigator)
class App extends React.Component {
state = {
isLoaded: false,
}
setAppLoaded = () => {
this.setState({ isLoaded: true })
}
render() {
return (
translucent={true}
isLoaded={this.state.isLoaded}
logoImage={require("./assets/logo.png")}
backgroundColor={"#262626"}
logoHeight={150}
logoWidth={150}
>
)
}
}
export default App
`
#### HomeScreen
`javascript
class HomeScreen extends React.Component {
...
async componentDidMount() {
await loadAsync();
this.props.setAppLoaded();
}
...
}
export default HomeScreen
``