2014-02-17 108 views
1

我目前正在通過Android培訓,因爲我試圖正確隱藏導航欄。在training documentation它指出:隱藏導航欄 - Android培訓

您可以隱藏在Android 4.0導航欄和使用 SYSTEM_UI_FLAG_HIDE_NAVIGATION標誌更高。這段代碼隱藏了 導航欄和狀態欄:

然後他們繼續提供代碼示例。

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); 

正如你可以看到它說,SYSTEM_UI_FLAG_FULLSCREEN標誌僅4.1可用,但他們說的這個代碼塊是4.1。這不會導致應用程序崩潰嗎?如果我的代碼塊看起來更像:

View decorView = getWindow().getDecorView(); 
if (Build.VERSION.SDK_INT == 14 || Build.VERSION.SDK_INT == 15){ 
    int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION; 
    decorView.setSystemUiVisibility(uiOptions); 
} else if (Build.VERSION.SDK_INT >=16) { 
    int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN; 
    decorView.setSystemUiVisibility(uiOptions); 
} 
+0

View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;如果你只想隱藏導航,這就是全部 – user2511882

回答

1

這是不是導致應用程序崩潰?

不一定。

View.SYSTEM_UI_FLAG_FULLSCREEN這樣的值是static final int。它們的實際數值被放入APK中,而不是在運行時查看的符號。因此,你不會因爲有號碼而崩潰。

setSystemUiVisibility()什麼時候會設置未知標誌,但可能會有所不同。通常情況下,它可以正常工作,因爲平臺通常會將標誌屏蔽到平臺API級別所使用的位範圍,因此高階位所發生的事情是無關緊要的。但是,我沒有專門在setSystemUiVisibility()的情況下嘗試過。但是,如果谷歌的示例顯示它在4.0上運行,並且如果你在4.0上運行它沒有問題,你應該沒問題。