我正在运行发布的代码(用于类组件(:
https://reactnative.dev/docs/dimensions
然而,在Android Studio模拟器上;"旋转";设备的尺寸值不会改变,即我原以为高度和宽度会随着旋转而改变,但这并没有发生。有什么想法吗?
根据之前链接上发布的信息,上面写着:
尽管维度可以立即使用,但它们可能会发生变化(例如,由于设备旋转、可折叠设备等原因,(,因此任何依赖于这些常量的渲染逻辑或样式都应该在每次渲染时尝试调用此函数,而不是缓存值(例如,使用内联样式而不是在样式表中设置值(
我也尝试过使用useWindowDimensions,但这仅限于功能反应组件。
到目前为止,我还没有找到一种可靠的方法来检测是否使用React Native和类组件旋转的Android设备:-(
注意:React功能组件也会出现此问题
尝试:https://reactnative.dev/docs/usewindowdimensions它对我有效
import { useWindowDimensions } from 'react-native';
const { height, width } = useWindowDimensions();
我也遇到了同样的问题。将react-native
升级到版本0.64.2
修复了它。
我在0.61.5上的问题不是值不正确,而是视图在旋转后根本没有重新渲染,所以我把它添加到constructor((中,它起了作用:
Dimensions.addEventListener('change', () => {
this.setState({});
});