2017-02-20 82 views
0

我一直在研究Android應用程序項目,並嘗試在onCreate()時檢測導航欄(屏幕上的)的可見性,以確定屏幕高度mScreenHeight。總之,想法是如何檢查導航欄是否在屏幕上可見。 到目前爲止,我去與此代碼:檢查導航欄的可見性

Point screenFull = new Point() , screenNavBar = new Point(); 
getActivity().getWindowManager().getDefaultDisplay().getRealSize(screenFull); 
getActivity().getWindowManager().getDefaultDisplay().getSize(screenNavBar); 

View decorView = getActivity().getWindow().getDecorView(); 
if ((decorView.getSystemUiVisibility() & View.SYSTEM_UI_FLAG_HIDE_NAVIGATION) == 0) { 
    mScreenHeight = screenNavBar.y; 
} else { 
    mScreenHeight = screenFull.y; 
} 

但每次應用程序運行時,它總是給屏幕高度的結果,像導航欄是可見的,evethough我已經隱藏導航欄。我已經上網了,沒有找到任何答案。我很感激幫助。

回答

0

如果通過「已隱藏導航欄」,您的意思是您先前在onCreate()中設置了沉浸模式,那麼我認爲您可能需要在活動有機會激活模式。嘗試將您的支票移入onResume(),如果不起作用,請在幾秒鐘後再次檢查。

我發現身臨其境的模式設置非常難以使用,具體取決於您支持的API級別,特別是如果您的建築物也位於亞馬遜。