I am new to react native, while learning from native docs , I got stuck by ImageBackground usage. My code is given below , help will be appreciated . It was working fine, but when I started using navigator function, its not working as normal.please suggest an optimal solution to solve this problem.
import React from 'react';
import { StyleSheet, Text, View, Button, ImageBackground } from 'react-native';
import { createAppContainer } from 'react-navigation';
import { createStackNavigator } from 'react-navigation-stack';
class HomeScreen extends React.Component {
render() {
return (
<View style={styles.container}>
<ImageBackground
source={{
uri:
'https://images.unsplash.com/photo-1524338198850-8a2ff63aaceb?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=358&q=80',
}}
style={styles.backgroundContainer}/>
<Text style={styles.welcomenote}>WELCOME TO ME</Text>
<View style={styles.loginbtn}>
<Button style={styles.loginbtn} title="LOGIN" />
</View>
<View style={styles.signupbtn}>
<Button title="SIGNUP" />
</View>
</View>
);
}
}
class DetailsScreen extends React.Component {
render() {
return (
<View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
<Text>Details Screen</Text>
</View>
);
}
}
const RootStack = createStackNavigator(
{
Home: HomeScreen,
Details: DetailsScreen,
},
{
initialRouteName: 'Home',
}
);
const AppContainer = createAppContainer(RootStack);
export default class App extends React.Component {
render() {
return <AppContainer />;
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#fff',
alignItems: 'center',
justifyContent: 'center',
},
backgroundContainer: {
flex: 1,
width: 300,
height: 100,
resizeMode: 'cover',
justifyContent: 'center',
alignItems: 'center,',
},
loginbtn: {
padding: 20,
width: '90%',
height: 40,
position: 'absolute',
left: 20,
right: 0,
top: 250,
bottom: 0,
},
signupbtn: {
padding: 20,
width: '90%',
height: 40,
position: 'absolute',
left: 20,
right: 0,
top: 200,
bottom: 0,
},
welcomenote: {
position: 'absolute',
left: 70,
right: 0,
top: 200,
bottom: 0,
width: '90%',
height: 40,
color: 'white',
},
});
everything is fine,it's not showing the background image
Try this,
import React from 'react';
import { StyleSheet, Text, View, Button, ImageBackground } from 'react-native';
import { createAppContainer } from 'react-navigation';
import { createStackNavigator } from 'react-navigation-stack';
class HomeScreen extends React.Component {
render() {
return (
<View style={styles.container}>
<Image source={require('https://images.unsplash.com/photo-1524338198850-8a2ff63aaceb?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=358&q=80')} style=
{styles.backgroundContainer}/>
<Text style={styles.welcomenote}>WELCOME TO ME</Text>
<View style={styles.loginbtn}>
<Button style={styles.loginbtn} title="LOGIN" />
</View>
<View style={styles.signupbtn}>
<Button title="SIGNUP" />
</View>
</View>
);
}
}
class DetailsScreen extends React.Component {
render() {
return (
<View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
<Text>Details Screen</Text>
</View>
);
}
}
const RootStack = createStackNavigator(
{
Home: HomeScreen,
Details: DetailsScreen,
},
{
initialRouteName: 'Home',
}
);
const AppContainer = createAppContainer(RootStack);
export default class App extends React.Component {
render() {
return <AppContainer />;
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#fff',
alignItems: 'center',
justifyContent: 'center',
},
backgroundContainer: {
flex: 1,
width: 300,
height: 100,
resizeMode: 'cover',
justifyContent: 'center',
alignItems: 'center,',
},
loginbtn: {
padding: 20,
width: '90%',
height: 40,
position: 'absolute',
left: 20,
right: 0,
top: 250,
bottom: 0,
},
signupbtn: {
padding: 20,
width: '90%',
height: 40,
position: 'absolute',
left: 20,
right: 0,
top: 200,
bottom: 0,
},
welcomenote: {
position: 'absolute',
left: 70,
right: 0,
top: 200,
bottom: 0,
width: '90%',
height: 40,
color: 'white',
},
});