Dimensions
参考文档
本模块用于获取设备屏幕的宽高。
useWindowDimensions是React组件的首选API。 与Dimensions不同,它随着窗口的尺寸更新而更新。 这与React范例很好地配合
import { Dimensions } from 'react-native';
你可以用下面的方法来获取设备的宽高:
const windowWidth = Dimensions.get('window').width;
const windowHeight = Dimensions.get('window').height;
注意:尽管尺寸信息立即就可用,但它可能会在将来被修改(譬如设备的方向改变),所以基于这些常量的渲染逻辑和样式应当每次 render 之后都调用此函数,而不是将对应的值保存下来。(举例来说,你可能需要使用内联的样式而不是在StyleSheet中保存相应的尺寸)。
如果您以可折叠设备或可以更改屏幕尺寸或应用程序窗口尺寸的设备为目标,则可以使用“尺寸”模块中可用的事件侦听器。
Example
示例
import React, { Component } from "react";
import { View, StyleSheet, Text, Dimensions } from "react-native";
const window = Dimensions.get("window");
const screen = Dimensions.get("screen");
class App extends Component {
state = {
dimensions: {
window,
screen
}
};
onChange = ({ window, screen }) => {
this.setState({ dimensions: { window, screen } });
};
componentDidMount() {
Dimensions.addEventListener("change", this.onChange);
}
componentWillUnmount() {
Dimensions.removeEventListener("change", this.onChange);
}
render() {
const { dimensions } = this.state;
return (
<View style={styles.container}>
<Text>{`Window Dimensions: height - ${dimensions.window.height}, width - ${dimensions.window.width}`}</Text>
<Text>{`Screen Dimensions: height - ${dimensions.screen.height}, width - ${dimensions.screen.width}`}</Text>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: "center",
alignItems: "center"
}
});
export default App;