android 適配華為透明狀態列 ,保留虛擬導航鍵,設定狀態列透明,且設定狀態列文字顏色為黑色
阿新 • • 發佈:2019-01-03
設定後狀態列不遮擋底部contentview裡的內容,但是狀態列上的圖示文字顏色和我的主題色白色混在一起了
public static void setTranslucentKeepVirtualNav(Activity activity) { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) { return; } Window window = activity.getWindow(); window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); window.setStatusBarColor(0x00000000); // transparent } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { int flags = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS; window.addFlags(flags); } }
加入這樣一行程式碼使狀態列主題為淺色,顏色自然就變成深色了
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
}