React Native在调用/共享热点时检测IOS状态栏高度?

2023-12-12

ios 通话或分享个人热点时状态栏高度发生变化且与视图重叠,如何检测状态栏高度发生变化?


我遇到过这个挑战,但还没有在 stackoverflow / github 问题上找到答案。

我提出了自己的解决方案,并将其发布,这样可以为其他人节省一些时间。

import { NativeModules, StatusBarIOS } from 'react-native'
const { StatusBarManager } = NativeModules

componentDidMount () {
  if (Platform.OS === 'ios') {
    StatusBarManager.getHeight(response =>
        this.setState({statusBarHeight: response.height})
    )

    this.listener = StatusBarIOS.addListener('statusBarFrameWillChange',
      (statusBarData) =>
        this.setState({statusBarHeight: statusBarData.frame.height})
    )
  }
}

componentWillUnmount () {
  if (Platform.OS === 'ios' && this.listener) {
    this.listener.remove()
  }
}

怎么运行的

1)获取初始高度,注意它是异步方法

StatusBarManager.getHeight(response =>
    this.setState({statusBarHeight: response.height}))

2)设置状态栏变化监听器

StatusBarIOS.addListener('statusBarFrameWillChange',
    (statusBarData) =>
      this.setState({statusBarHeight: statusBarData.frame.height})
  )

3) 删除 componentWillUnmount 中的监听器

if (Platform.OS === 'ios' && this.listener) {
  this.listener.remove()
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

React Native在调用/共享热点时检测IOS状态栏高度? 的相关文章

随机推荐

  • 如何在导航抽屉中的两个片段之间通信数据

    我有一个导航抽屉 其中包含不同的片段 每个项目显示一个片段 我想将数据从一个片段传递到另一个片段 我只有一个包含导航抽屉的活动 其中有一个片段列表 我尝试了很多解决方案 捆绑和意图 但我无法解决我的问题 任何人都可以帮我吗 这是我的第一个片
  • 如何在 Windows Phone 7 中使用 BinaryFormatter

    如何在 Windows Phone 7 中使用 BinaryFormatter 我用这个using System Runtime Serialization Formatters Binary在 service1 svc cs 中 但我无法
  • 使用 Windows 批处理文件从 txt 文件中仅读取 x 行

    如何从 a txt 文件中只读取 X 行 该文件包含目录的所有名称 我只想读取 x 行 X 可以是 1 到 99 之间的数字 您需要根据需要修改此设置 但下面的脚本将循环遍历文件 directories txt 并回显该行的内容 直到达到中
  • Java 中什么会引发 IOException?

    java io IOException似乎是最常见的异常类型 巧合的是 它似乎也是最模糊的 我不断看到throws IOException每当使用套接字 文件等进行编写时 我实际上从未被触发过 所以我想知道应该触发异常的是什么 该文档对于解
  • 不同实体值具有相同同义词的对话流歧义

    我在使用对话流 api ai 开发代理时遇到问题 我使用了很多彼此不同的实体值 然而 某些实体值有类似的同义词 但代理仅返回一个值 我怎样才能获得所有可能的匹配或提出问题来解决歧义 例如我有一个意图 告诉我 ABC 特快列车的位置 if m
  • Java Spring + Jersey 子资源:在运行时注入构造函数参数

    我定义了以下方法 返回一个表示子资源定位器 泽西岛 的 bean Path slug public PageResource page PathParam slug String siteSlug throws AppException s
  • 如何禁止用户在 Groovy 脚本中做坏事?

    我计划将 Groovy 脚本引擎集成到我的游戏中 这样它将为游戏提供良好的可修改性 但是如何防止玩家编写邪恶的脚本 例如删除 C 驱动器上的所有文件 Groovy 包括类似库java io File默认情况下 因此一旦他们决定编写此类脚本
  • Swift - 如何检测方向变化

    我想将两个图像添加到单个图像视图 即横向一个图像和纵向另一个图像 但我不知道如何使用快速语言检测方向变化 我尝试过这个答案 但它只需要一张图片 override func viewWillTransitionToSize size CGSi
  • 如何在 Java 中使用密码保护压缩的 Excel 文件?

    我有一个关于保护 Excel 文件的密码的问题 情况是 我有一个 zip 文件 其中有一个 Excel 文件 我需要编写一个Java程序 以密码保护Excel文件 因此 用户应该能够解压缩该文件 zip 文件不需要受密码保护 但是 Exce
  • 如何在没有 EULA 的情况下启动 ChromeDriver.exe?

    我正在学习使用 Selenium v2 20 以领先于我们的一些程序员 他们很快将用它创建一些浏览器测试 我想在陷阱出现之前发现它们 而我无意中发现了一个 当我创建 ChromeDriver 时 它总是会弹出 Google Chrome E
  • 在 AS3 中从库加载和卸载内容

    我正在做一个 Flash 项目 但我对 ActionScript 很陌生 我在主页上有一个菜单 我想在单击菜单项时显示其他页面 我知道如何从库加载影片剪辑 但我不知道如何指定它们在屏幕上的位置以及如何使它们出现在特定层中 当我点击菜单的另一
  • 如果我们启用僵尸对象,所有弱引用都会被清空吗?

    通常 如果一个对象被释放 所有弱引用都将被清空 如果我们启用僵尸对象会怎么样 产品 gt 编辑方案 gt 启用僵尸对象 弱引用也会被置零吗 否则 在启用僵尸对象时会出现正常情况下不会发生的错误 正如其中一个答案所说 我强烈怀疑弱引用将被消除
  • 如何将秒转换为小时、分钟和秒?

    我有一个以秒为单位返回信息的函数 但我需要以小时 分钟 秒的形式存储该信息 有没有一种简单的方法可以在Python中将秒转换为这种格式 您可以使用datetime timedelta功能 gt gt gt import datetime g
  • 如何让 PHP 在出现错误时生成回溯?

    尝试使用 PHP 的默认仅当前行错误消息来调试 PHP 是可怕的 当产生错误时 如何让 PHP 产生回溯 堆栈跟踪 我的用于安装生成回溯的错误处理程序的脚本
  • 加载 jasperreports 的 .jrxml 文件

    在我的项目中 我将 jrxml 文件存储在名为 com bio ofm mnu views reports jasperReports 的包中 当我尝试加载 jrxml 时出现以下错误 net sf jasperreports engine
  • 将外部 SVG 文件加载到变量中并附加到 html

    我正在尝试用该 SVG 的内容替换嵌入 IMG 标签中的 SVG 图像 并将其内联输出 换句话说 将给定 IMG SRC 属性的 SVG 文件内容加载到变量中 并将其作为内联 SVG 注入 HTML 如下所示 else if type ty
  • 获取日期时间范围内的教室可用时间

    我正在使用 Oracle 11g 我遇到了这个问题 我还想不出任何想法来解决它 我有一张桌子 教室里有人 我需要找到的是日期时间范围之间的可用小时数 例如 我有A B C房间 占用教室表如下 Classroom start end A 10
  • 逐行循环遍历 char 数组

    我知道如何通过使用 fopen fgets 等读入 FILE 来逐行循环文件 但是我如何使用纯 C 逐行查看 char 数组 我用谷歌搜索了很多 只能找到从文件中读取的内容 include
  • E/MediaPlayer:错误(1,-19)

    我正在创建一个简单的音板 以便在用户单击按钮时播放声音 问题是 如果按钮按得足够多 通常大约 10 次 它最终会停止播放并显示错误E MediaPlayer error 1 19 我究竟做错了什么 我的播放声音的代码 private voi
  • React Native在调用/共享热点时检测IOS状态栏高度?

    ios 通话或分享个人热点时状态栏高度发生变化且与视图重叠 如何检测状态栏高度发生变化 我遇到过这个挑战 但还没有在 stackoverflow github 问题上找到答案 我提出了自己的解决方案 并将其发布 这样可以为其他人节省一些时间