跳到主要内容

Dimensions

useWindowDimensions 是 React 组件的首选 API。与 Dimensions 不同,它会随着窗口尺寸的更新而更新。这与 React 范式完美契合。

tsx
import {Dimensions} from 'react-native';

您可以使用以下代码获取应用程序窗口的宽度和高度

tsx
const windowWidth = Dimensions.get('window').width;
const windowHeight = Dimensions.get('window').height;

虽然尺寸立即可用,但它们可能会发生变化(例如由于设备旋转、可折叠设备等),因此任何依赖于这些常量的渲染逻辑或样式都应尝试在每次渲染时调用此函数,而不是缓存值(例如,使用内联样式而不是在 StyleSheet 中设置值)。

如果您正在为可折叠设备或可以改变屏幕尺寸或应用程序窗口尺寸的设备开发,可以使用 Dimensions 模块中可用的事件监听器,如下例所示。

示例

参考

方法

addEventListener()

tsx
static addEventListener(
type: 'change',
handler: ({
window,
screen,
}: DimensionsValue) => void,
): EmitterSubscription;

添加事件处理程序。支持的事件

  • change: 当 Dimensions 对象中的属性发生变化时触发。事件处理程序的参数是一个 DimensionsValue 类型对象。

get()

tsx
static get(dim: 'window' | 'screen'): ScaledSize;

初始尺寸在调用 runApplication 之前设置,因此它们应该在任何其他 require 运行之前可用,但可能会在以后更新。

示例:const {height, width} = Dimensions.get('window');

参数

姓名类型描述
dim
必需
字符串调用 set 时定义的尺寸名称。返回该尺寸的值。

对于 Android,window 尺寸将不包括 状态栏(如果不是半透明)和 底部导航栏 占用的尺寸


类型定义

DimensionsValue

属性

姓名类型描述
windowScaledSize可见应用程序窗口的大小。
screenScaledSize设备屏幕的大小。

ScaledSize

类型
对象

属性

姓名类型
width数字
height数字
scale数字
fontScale数字