I had exactly this problem; I ended up abandoning <ImageBackground> and returning to using <Image> , but removed the elements inside it. Then I wrapped it all in a new <View> and positioned <Image> absolutely in styles. Here, where my code ended, if used:
Jsx
render() { return ( <View style={{ alignItems: 'center' }}> <Image source={require('../images/pages/myImage.jpg')} style={styles.backgroundImage} />
Style
const { width: viewportWidth, height: viewportHeight } = Dimensions.get('window'); const styles = StyleSheet.create({ backgroundImage: { flex: 1, position: 'absolute', resizeMode: 'cover', width: viewportWidth, height: viewportHeight, backgroundColor: 'transparent', justifyContent: 'center', alignItems: 'center' },
source share