2012-12-05 123 views
0

我試圖隱藏/最小化的Android 4.0.3系統吧。目前我在做的Android ICS隱藏系統欄中

getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION); 

在我的活動onCreate事件。只要用戶觸摸屏幕,酒吧會再次出現。根據其他STO線程,這種行爲不能被規避。 我的想法是趕上我認爲任何觸摸事件,並重新將其隱藏顯示後立即酒吧。在點擊處理程序中運行上面顯示的代碼不起作用。 如何實現(幾乎)隱藏吧?

回答

1

我不會談論「爲什麼」,只是「如何」 :-)

所以,關於

getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION); 

這不會影響平板電腦設備,它使用一個系統吧,而比單獨的導航 和狀態欄。

在平板電腦,你可以嘗試(API等級14以後)

myView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE); 

要檢測的事件,我想你可以使用它來捕捉事件:

myView.setOnSystemUiVisibilityChangeListener(
    new OnSystemUiVisibilityChangeListener() 
     { 
     public void onSystemUiVisibilityChange(int visibility) 
     { 
     if (visibility == View.SYSTEM_UI_FLAG_VISIBLE) { 
      // TODO whatever you want 
     } 
     else { 
      // TODO what to do in the other case 
     } 
     } 
    } 
); 

更一般地,在這裏是來自「專業Android 4應用程序開發」的額外建議

通常會同步其他更改在您的 用戶界面中,導航可見性發生變化。例如,您可以選擇 來隱藏和顯示基於進入和退出「全屏模式」的操作欄和其他導航控件 。您可以通過 將OnSystemUiVisibilityChangeListener註冊到您的View - 一般來說,View是使用控制導航知名度

+0

它會影響平板設備。系統欄隱藏,直到第一次觸摸發生。 – gorootde

0

你不能隱藏它,但你可以簡單地禁用它,除了回家。嘗試this link.。使用SYSTEM_UI_FLAG_LOW_PROFILE,您可以調暗系統欄,並使用onWindowFocusChanged()可以關注並摺疊它。