React Native 调用 3 方库后失去对 iOS 状态栏的控制
Posted
技术标签:
【中文标题】React Native 调用 3 方库后失去对 iOS 状态栏的控制【英文标题】:React Native lost control of iOS status bar after calling 3-party library 【发布时间】:2019-05-29 04:06:44 【问题描述】:我使用的是第 3 方库,它会在调用时隐藏 ios 状态栏。之后,我无法在屏幕上重新显示状态栏。
在React Native中我可以通过StatusBar
组件正常控制状态栏。
但是,我尝试调用 iOS 库 https://www.dynamsoft.com/Products/dynamsoft-webcam-sdk.aspx 它会在显示屏幕时隐藏状态栏。
隐藏状态栏后,我无法使用StatusBar.setHidden(false)
再次显示它。
它不提示任何错误,只是没有任何效果。
任何人都知道发生了什么以及在这种情况下如何显示状态栏?
【问题讨论】:
请确保 StatusBar.setHidden(false) 将在完全关闭调用屏幕后执行。如果您在关闭调用屏幕之前或之间执行 StatusBar.setHidden(false),则无效。 我确信 StatusBar.setHidden(false) 是在该库屏幕完全关闭后执行的。我在屏幕上添加了一个按钮,并在库屏幕关闭后手动按下。 【参考方案1】:您可以在屏幕中要显示状态栏的位置添加以下代码
import React, Component from 'react';
import StatusBar from 'react-native';
class MyComponent extends Component
componentDidMount()
StatusBar.setHidden(false);
或者你也可以这样做
<StatusBar hidden=false />
这将帮助您在所需屏幕中显示状态栏
【讨论】:
正如我的问题所说,StatusBar.setHidden(false) 没有效果【参考方案2】:下面的解决方法可能有效。
import React, Component from 'react';
import StatusBar from 'react-native';
class MyComponent extends Component
componentDidMount()
setTimeout(() => StatusBar.setHidden(false);,1000)
【讨论】:
以上是关于React Native 调用 3 方库后失去对 iOS 状态栏的控制的主要内容,如果未能解决你的问题,请参考以下文章
如何在不失去对 React Native 的关注的情况下关闭键盘。(至少显示光标)
react native 隐藏键盘 TextInput失去焦点
React Native TextInput 在 JSX 组件中失去焦点
React Native Custom TextInput 对象在每个字符后失去焦点