如何在React Native中隐藏Android Navigation Bar?
我指的是屏幕底部的工具栏,其中包含软件的后退按钮和主页按钮,而不是页面顶部的组件,其中包含导航组件。
This page on android.com解释了如何为原生开发者做到这一点。有人能解释一下如何通过React原生应用程序来完成这一点吗?谢谢。
如何在React Native中隐藏Android Navigation Bar?
我指的是屏幕底部的工具栏,其中包含软件的后退按钮和主页按钮,而不是页面顶部的组件,其中包含导航组件。
This page on android.com解释了如何为原生开发者做到这一点。有人能解释一下如何通过React原生应用程序来完成这一点吗?谢谢。
9条答案
按热度按时间brccelvz1#
如果你想永久实现这一点,你必须隐藏导航栏时,应用程序被创建,当它回到焦点。
为此,请在
MainActivity.java
中添加以下代码:您可能希望使其“沉浸式”,以便用户仍然可以通过从屏幕底部拖动来访问导航栏。为此,添加
View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
标志:您可以在android documentation上找到更多选项。
cig3rfwq2#
要隐藏Android导航栏,你可以使用
react-native-navigation-bar-color
来隐藏导航栏,它允许你显示或隐藏导航栏。你可以在here文档中看到更多信息。注意,它不适用于Expo,因为它需要你链接本地代码。安装过程相当简单:
然后,您需要链接包(仅适用于react-native〈= 0.59.0):
完成此操作后,您可以按以下方式使用它:
然后当你想显示你刚才使用的导航栏时
要隐藏它,您可以用途:
q3qa4bjr3#
根据Martin Konicek的回答:
我继续编写了您需要的包和模块:https://gist.github.com/dhrrgn/16a8dfa7581a682627c6
您需要将其添加到
MainActivity.java
文件中的getPackages
方法中,并向包发送ReactActivity对象,如下所示:new NavigationBarAndroidPackage(this)
**注:**代码未经测试,但应该适合您(您需要更改第一行的
package
)。我只是使用了您发送的链接中提供的示例代码作为示例。根据您的需要进行修改。p1iqtdky4#
我已经创建了一个导航栏隐藏/显示,颜色变化和更多的包。
React Native系统导航栏
安装
或
链接
https://www.npmjs.com/package/react-native-system-navigation-bar
https://github.com/kadiraydinli/react-native-system-navigation-bar
e5nqia275#
JavaScript中没有内置的API来执行此操作。
好消息是,在React Native中,您可以通过编写一个原生模块来向JavaScript公开任何原生功能,参见documentation。
通过这种方式,您可以提供一个类似
NavigationBarAndroid.hide()
的JS函数,并让它调用您链接到的API。ne5o7dgx6#
使用此选项:https://github.com/Anthonyzou/react-native-full-screen
用法:
vawmfj5a7#
对于世博建筑:
防止内容从跳跃与这navbar
隐藏导航栏
透明背景
用户仍可滑动以显示按钮
我试着用
<TouchableWithoutFeedback >
Package 我的屏幕,以便能够在NavigationBar.setVisibilityAsync("hidden")
中使用onPress prop,但即使没有onPress
,底部导航栏在滑动时也只显示一小会儿vddsk6oq8#
我在Android 9和我没有测试
但当切换到另一个应用程序时,导航栏再次出现。
目前为止对我来说最好的解决办法是
路易斯·扎瓦兹基
在我的www.example.com上复制它mainactivity.java可以很好地工作,并且总是在更改后隐藏。
xu3bshqb9#
我今天被卡在了同一个点上。我找到了一篇中等的文章,完成了这项工作。这个问题似乎很老了,然而,一些新读者可能会发现这很有帮助。
https://medium.com/@mykl.ashton/how-to-hide-the-android-pie-navigation-bar-in-react-native-895e34c9e41
在本文中,作者编写了原生的java方法来控制导航栏,然后使用react原生桥从react端访问这些方法。
这是一篇很长的文章,但对我来说效果非常好!希望这能有所帮助!