簡體   English   中英

如何在不更改MainActivity的情況下在React Native App中隱藏android系統的底部導航欄? 也許通過AndroidManifest?

[英]How to hide android system' s bottom navigation bar in React Native App without changing MainActivity? Maybe through AndroidManifest?

我想隱藏系統的底部導航欄。 我使用了“ 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找不到。

錯誤:鏈接引用失敗。

失敗:構建失敗,發生異常。

  • 出了什么問題:任務':react-native-navigation-bar-color:verifyReleaseResources'的執行失敗。

    com.android.ide.common.process.ProcessException:無法執行aapt

由於我的應用程序具有需要全屏模式的視頻屏幕,因此請通過提供一種方法將其永久隱藏在react-native或建議其他npm package()或幫助我解決發布版本錯誤,來幫助我。

謝謝

截圖

隱藏導航欄

您可以使用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標志的位置有所不同。 如果您在活動的onCreate()方法中隱藏系統欄,並且用戶按下Home鍵,則系統欄將重新出現。 當用戶重新打開活動時,不會調用onCreate(),因此系統欄將保持可見。 如果您希望系統UI更改在用戶進入和離開您的活動時持續存在,請在onResume()或onWindowFocusChanged()中設置UI標志。
  • 方法setSystemUiVisibility()僅在從中調用的視圖可見時才有效。
  • 從視圖中導航會使使用setSystemUiVisibility()設置的標志被清除。

關於我的答案的此鏈接

或使用此鏈接

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

以書面形式引用另一個答案的文章。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM