React native 什么';这是';窗口';和';屏幕';在维度API中

React native 什么';这是';窗口';和';屏幕';在维度API中,react-native,React Native,在我的iOS模拟器上,它们都返回相同的值 我理解普通浏览器的区别, 但这两者之间的区别是什么呢? 是否存在返回不同值的场景?关于维度的文档非常糟糕(),因此您必须深入了解代码以了解发生了什么。如果您查看的来源,您将在第47行看到以下注释: // Screen and window dimensions are different on android 如果您使用责怪追溯历史,您将在代码的相关部分中找到,它本身指向报告不同屏幕高度的维度 我对安卓本身了解不够,但据我所知,安卓似乎可以报告两个不同

在我的iOS模拟器上,它们都返回相同的值

我理解普通浏览器的区别, 但这两者之间的区别是什么呢?
是否存在返回不同值的场景?

关于维度的文档非常糟糕(),因此您必须深入了解代码以了解发生了什么。如果您查看的来源,您将在第47行看到以下注释:

// Screen and window dimensions are different on android
如果您使用责怪追溯历史,您将在代码的相关部分中找到,它本身指向报告不同屏幕高度的维度

我对安卓本身了解不够,但据我所知,安卓似乎可以报告两个不同的数字:

  • 带软菜单栏的宽度/高度
  • 宽度/高度,无软菜单栏(因此实际整个屏幕)
  • 在我的Android设备上快速测试打印出这些值,我能够确认
    窗口的高度
    屏幕的高度。因此,这很可能意味着:

    • 窗口
      :不使用软菜单栏报告宽度/高度
    • 屏幕
      :报告整个屏幕的宽度/高度

    我没有回复Android上的方向更改,所以我不知道旋转屏幕会如何影响这一点。

    在Android上,
    窗口
    反映了此应用程序可用的整个
    屏幕
    部分。至少有3种情况下,
    屏幕
    窗口
    可能不同:

    • 如果Android设备打开了设备
      窗口
      的高度将比
      屏幕
      的高度低导航器的高度。这是一个被删除的问题的答案中的链接

    • 如果应用程序以模式显示,两个应用程序的窗口并排显示,
      窗口的宽度或高度将低于
      屏幕的宽度或高度,具体取决于该屏幕的宽度或高度。这是在react本地文档上的一个“文档”,该文档已关闭,因为Facebook没有人查看它

    • 如果Android设备在应用程序打开时在辅助功能设置中更改了或设置,则
      窗口
      比例
      宽度
      高度
      属性将更新以反映缩放,但
      屏幕
      的属性将不会更新。如果重新启动应用程序,则
      窗口
      缩放
      属性将与屏幕的属性匹配

      如果具有固定尺寸的元素无法在更改屏幕缩放时缩放,而不重新启动应用程序,则将这些尺寸乘以
      dimensions.get('window')。scale/dimensions.get('screen')。scale
      可能会有所帮助


    窗口的宽度和高度
    将与
    屏幕
    相同或更小;只有一个例外:如果应用程序是在“显示大小”或“屏幕缩放”设置设置为高的情况下打开的,则在应用程序仍然打开的情况下,该设置会设置为低。在这种情况下,高度和宽度将更大,
    比例将以相同的比例降低。

    感谢您的回答,感谢您(以一种微妙的方式)向我展示,我本可以自己找到它;-)是相对于
    窗口
    屏幕
    .measure()
    调用吗?Android支持拆分屏幕,其中您的窗口仅覆盖部分屏幕。在某些发行版和chromeOS上也有自由形式的窗口,其中窗口大小小于屏幕,可以调整大小。您可以在清单中指定您的应用程序不支持这些功能,然后操作系统将不允许。然后在普通的全屏手机应用程序上有系统栏。无论它们是包含在窗口中还是缩小窗口以排除它们,都可以由应用程序本身进行配置。太棒了!多么历史性的回答啊!