2014-10-20 101 views
0

我遇到了一些麻煩隱藏狀態欄。Android狀態欄不會隱藏

如果我使用此代碼,將進入完全沉浸式模式(隱藏狀態欄和導航),它隱藏導航,但狀態欄只是不斷坐在那裏:

@Override 
public void onWindowFocusChanged(boolean hasFocus) { 
    super.onWindowFocusChanged(hasFocus); 
    if (hasFocus) { 
     decorView.setSystemUiVisibility(
      View.SYSTEM_UI_FLAG_LAYOUT_STABLE 
      | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION 
      | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 
      | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION // hide nav bar 
      | View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar 
      | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY 
     ); 
    } 
} 

我也使用清單嘗試:

android:theme="@android:style/Theme.Holo.NoActionBar.Fullscreen" 

無論是作品。也試過清單的做法沒有setSystemUiVis()函數(只是爲了測試它是否會工作 - 它應該是因爲我曾經使用過這一點),但事實並非如此。

測試在Android 4.4.2(索尼Z2片)和Android L移動開發預覽版(第二版,Nexus7)

幫助?

回答

1

好吧,我想通了。不知何故科爾多瓦(2.7.0)干擾全屏的東西。

爲了得到它的工作,在(RES/XML/config.xml中)第一個編輯config.xml並添加以下偏好:

<preference name="fullscreen" value="true" /> 

然後,在onWindowFocusChanged方法,註釋此行:

| View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar 

因此,它應該是這樣的:

@Override 
public void onWindowFocusChanged(boolean hasFocus) { 
    super.onWindowFocusChanged(hasFocus); 
    if (hasFocus) { 
     decorView.setSystemUiVisibility(
      View.SYSTEM_UI_FLAG_LAYOUT_STABLE 
      | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION 
      | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 
      | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION // hide nav bar 
     // | View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar 
      | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY 
     ); 
    } 
} 

最後但並非最不重要的:請勿使用.Fullscreen他們e在你的清單中。

吶喊。