【发布时间】:2021-01-31 11:06:08
【问题描述】:
即使我可以更改屏幕方向以更新状态并重新渲染,ImageBackground 组件仍然不会更新其宽度。
我有以下代码:
<View
onLayout={event => this.mylayoutchange(event)}
style={{ flex: 1, backgroundColor: 'green' }}
>
<ImageBackground
style={{ flex: 1, width: this.state.width, height: this.state.height }}
imageStyle={{ resizeMode: 'repeat' }}
source={require('../assets/images/my_background.jpg')}
>
<View>
<Text>.... Other code here....</Text>
</View>
</ImageBackground>
</View>;
当用户改变设备的方向时,会调用 mylayoutchange() 函数。它正确更新状态。渲染功能将更新。如console.log() 所示,宽度和高度已正确更改。但是,无论出于何种原因,<ImageBackground> 都不会更新其正确的宽度和高度。
当屏幕旋转时,背景图像不再填满屏幕的整个大小,而是看到绿色的背景颜色。
我做错了什么?
我的环境:
"react": "16.13.1",
"react-native": "0.63.2",
【问题讨论】:
-
如果您可以,请在 Snack 上分享您的问题的重新制作。乖乖,我们可以提供更好的帮助。
标签: react-native screen-orientation imagebackground