android系統預設都會顯示頂部的狀态欄和底部的導航欄,并且預設允許下拉,下面說說如何将他們都禁止掉。
1,先說狀态欄
狀态欄其實就是SystemUI.apk,源碼目錄是android/frameworks/base/packages/SystemUI/,但是狀态欄的隐藏并不是修改SystemUI中的内容,而是修改android/frameworks/base/core/res/res/values/dimens.xml中的内容,這個檔案是整個android系統公用的,一般不直接修改,而是通過overlay機制進行覆寫修改,用到overlay又必須提到闆型目錄,我們知道android/device/目錄下存放的是公司目錄/[産品目錄]/闆型目錄,其中産品目錄是可選的,我們公司是這樣的android/device/actions/s900_vr/,其中actions是公司名,s900_vr是闆型名稱。修改方法是:新增檔案device/actions/s900_vr/overlay/frameworks/base/core/res/res/values/dimens.xml,這個檔案看起來應該是這樣的,當然你還可以添加其他的配置項的覆寫:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="status_bar_height">0dip</dimen>
</resources>
其中配置項status_bar_height的值設為0dip就會隐藏android系統的狀态欄
2,再說導航欄
導航欄其實就是螢幕下方的BACK,HOME,RECENT這3個虛拟按鍵,修改方法是:新增檔案android/device/actions/s900_vr/overlay/frameworks/base/core/res/res/values/config.xml,這個檔案看起來應該是這樣的,當然你還可以添加其他的配置項的覆寫:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="config_showNavigationBar">false</bool>
</resources>
其中配置項config_showNavigationBar的值設為false就會隐藏導航欄
如果這兩個檔案你不知道怎麼寫,那就從frameworks/base/core/res/res/values/中的dimens.xml和config.xml拷貝過去,然後再修改對應的配置項的值就好了,放心,上面說的這兩個配置項都在這兩個檔案中。
3,最後說說如何禁止下拉
frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
2285 boolean panelsEnabled() {
2286 return (mDisabled & StatusBarManager.DISABLE_EXPAND) == 0;
2287 }
把這個函數的傳回值改為false:
2285 boolean panelsEnabled() {
2286 return false;
2287 }
就可以禁止下拉,這樣當你從螢幕上方往下滑動的時候,是不會顯示設定和Notification的。