- 首先要明確一下Android窗口的感念:
系統(tǒng)級窗口:手機屏幕所有可見部分芬骄,我們常說的狀態(tài)欄和導航欄都是系統(tǒng)級的窗口內(nèi)容硕糊;
應用級窗口:Android中的Activity所展示的部分咆霜,一般不包含狀態(tài)欄和導航欄娃承;
1.設置window占滿全屏&背景透明:
// Theme設置
<!--window占滿全屏-->
<item name="android:windowFullscreen">true</item>
<!--window設置背景-->
<item name="android:windowBackground">@color/transparent</item>
2.設置狀態(tài)欄和導航欄透明:
// Theme設置
<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:navigationBarColor">@android:color/transparent</item>
或
// 代碼設置
getWindow().setStatusBarColor(Color.TRANSPARENT);
getWindow().setNavigationBarColor(Color.TRANSPARENT);
- 此時狀態(tài)欄和導航欄透明,可見狀態(tài)欄和導航欄區(qū)域背景為桌面背景
- 接下來需要將頁面內(nèi)容延伸到狀態(tài)欄和導航欄
3.設置頁面內(nèi)容延伸到系統(tǒng)狀態(tài)欄和導航欄:
// Theme設置
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowTranslucentNavigation">true</item>
或
// 代碼設置
window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
4.設置系統(tǒng)自動為視圖添加一個狀態(tài)欄/導航欄高度的padding:
rootView.setFitsSystemWindows(true);
//或者xml view標簽加入
android:fitsSystemWindows="true"
以上只是內(nèi)容延伸到狀態(tài)欄和導航欄刮吧,如需全屏展示(例如:啟動頁)請參見Google官方啟用全屏模式:https://developer.android.com/training/system-ui/immersive?hl=zh-cn