如何去掉(隱藏)系統的StatusBar(狀態欄)


     在定制TV版本中,經常需要去掉StatusBar的需求,那么如何更好更方便的去掉StatusBar呢? 
 
     StatusBar是Android系統中重要的組成部分,可以看到一些提醒圖標已經通過它可以下拉出通知提醒和快捷設置,整個的代碼在工程SystemUI中。
     
     一拿到最簡單方法當然是直接刪除SystemUI.apk,但是如果真的這樣做的話,系統將會無法顯示牆紙。這是因為ImageWallpaper這個顯示牆紙的服務也在SystemUI中。參考SystemUI的manifest.xml文件,里面還有好多服務需要運行,所以直接去掉這個apk的做法肯定是不行的。
     
     如果不能去掉只能去看真正的StatusBar的代碼在哪里了,在整個里面主要涉及到三個類:

 

     這三個類很有意思的相互關聯,看類的名稱可以看出,一個是控制類(PhoneStatusBar),另外兩個是界面類。其中 StatusBarWindowView是整個View,包含狀態欄(PhoneStatusbarView)和底下的展開(PannelHodler),通過super_status_bar.xml,我們可以看出之際的結構如下:

 

     再參考代碼,我們可以畫出整個操作StatusBar的流程如下:
     

 

     回到剛才我們的問題,如果要屏蔽StatusBar,我們只要不讓StaatusBarWindowView 顯示就可以了,所以我們只要找到
    代碼

 

               mStatusBarWindow.setVisibility(View.GONE);
     至此,對於StatusBar的分析結束。
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM