1

我想隐藏系统的底部导航栏。我使用了“react-native-navigation-bar-color”,但它会导致构建错误,奇怪的是仅发布构建。

我想我可以删除这个包(react-native-navigation-bar-color)并通过更改 MainActivity 永久隐藏导航栏,但 React Native 中的 MainActivity 不继承 AppCompatActivity 以便它具有“onCreate”方法,我可以在其中编写代码(根据 android studio 文档)隐藏。

以下是构建错误:/Users/yashjaveri/.gradle/caches/transforms-1/files-1.1/appcompat-v7-28.0.0.aar/f688ce916ebedb5188b6c1f4470868ef/res/values-v28/values-v28.xml:9: 5-12:13:AAPT:错误:找不到资源 android:attr/dialogCornerR adius。

/Users/yashjaveri/Documents/React/ReactNative_Projects/SLink/node_modules/react-native-navigation-bar-color/android/build/intermediates/res/merged/release/values-v28/values-v28.xml:11:AAPT : 错误: 资源 android:attr/dialogCornerRadius 未找到。

/Users/yashjaveri/.gradle/caches/transforms-1/files-1.1/appcompat-v7-28.0.0.aar/f688ce916ebedb5188b6c1f4470868ef/res/values/values.xml:1304:5-69:AAPT:错误:资源android :attr/fontVariationSettings 未找到。

/Users/yashjaveri/.gradle/caches/transforms-1/files-1.1/appcompat-v7-28.0.0.aar/f688ce916ebedb5188b6c1f4470868ef/res/values/values.xml:1304:5-69:AAPT:错误:资源android :attr/ttcIndex 未找到。

错误:链接引用失败。

FAILURE:构建失败并出现异常。

  • 出了什么问题:任务':react-native-navigation-bar-color:verifyReleaseResources'执行失败。

    com.android.ide.common.process.ProcessException:无法执行 aapt

请通过提供在 react-native 中永久隐藏导航栏的方法或建议任何其他 npm package() 或帮助我解决发布构建错误来帮助我,因为我的应用程序有一个需要全屏模式的视频屏幕。

谢谢

截屏

4

1 回答 1

1

隐藏导航栏

您可以使用 SYSTEM_UI_FLAG_HIDE_NAVIGATION 标志隐藏导航栏。这个片段隐藏了导航栏和状态栏:

请注意以下几点:

@Reactmethod
public void hidenavigationbar() {
View decorView = getWindow().getDecorView();
// Hide both the navigation bar and the status bar.
// SYSTEM_UI_FLAG_FULLSCREEN is only available on Android 4.1 and higher, but as
// a general rule, you should design your app to hide the status bar whenever you
// hide the navigation bar.
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
          | View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);
}
  • 使用这种方法,触摸屏幕上的任何位置都会导致导航栏(和状态栏)重新出现并保持可见。用户交互导致标志被清除。
  • 清除标志后,如果您想再次隐藏这些栏,您的应用需要重置它们。请参阅响应 UI 可见性更改以讨论如何侦听 UI 可见性更改,以便您的应用程序可以做出相应的响应。
  • 在哪里设置 UI 标志会有所不同。如果您在 Activity 的 onCreate() 方法中隐藏系统栏并且用户按下 Home,系统栏将重新出现。当用户重新打开活动时,不会调用 onCreate(),因此系统栏将保持可见。如果您希望系统 UI 更改在用户导航进出您的活动时保持不变,请在 onResume() 或 onWindowFocusChanged() 中设置 UI 标志。
  • 方法 setSystemUiVisibility() 仅在您调用它的视图可见时才有效。
  • 离开视图会导致使用 setSystemUiVisibility() 设置的标志被清除。

这个关于我的答案的链接

或使用此链接

import FullScreen from 'react-native-full-screen'
FullScreen.onFullScreen()
FullScreen.offFullScreen()

一篇文章引用了写另一个答案

于 2019-04-19T06:24:28.503 回答