gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 07:17:33 25 4
gpt4 key购买 nike

在ios上调用或共享个人热点时状态栏高度发生变化并重叠 View ,如何检测状态栏高度变化时的状态?

最佳答案

我遇到了这个挑战,但没有找到有关 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()
}

关于react-native-ios - React Native 在调用/共享热点时检测 IOS 状态栏高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49718503/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com