先看效果圖:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmL5gTNxIDM0MTMxETNwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.gif)
(上圖為我的畢業設計,我會每天送出代碼到Github,歡迎star,fork。GitHub連結:https://github.com/uweii/SHShop)
1.設定狀态欄背景顔色
//拿到window
Window window = activity.getWindow();
//取消設定透明狀态欄,使 ContentView 内容不再覆寫狀态欄
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
//需要設定這個 flag 才能調用 setStatusBarColor 來設定狀态欄顔色
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
//設定狀态欄背景色
window.setStatusBarColor(color);
2.設定狀态欄字型顔色
Window window = activity.getWindow();
//取消設定透明狀态欄,使 ContentView 内容不再覆寫狀态欄
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
//需要設定這個 flag 才能調用 setStatusBarColor 來設定狀态欄顔色
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
//設定狀态欄字型顔色為黑色
window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
//設定狀态欄字型顔色為白色
window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR);
ok