3 回答
TA貢獻1824條經驗 獲得超5個贊
更改狀態欄顏色僅適用于棒棒糖上方的 android
1.您可以通過此行以編程方式更改狀態欄顏色:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
getWindow().setStatusBarColor(ContextCompat.getColor(context, R.color.your_color));
}
2.您可以使用平滑過渡動畫來做到這一點:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
int startColor = getWindow().getStatusBarColor();
int endColor = ContextCompat.getColor(context, R.color.your_color);
ObjectAnimator.ofArgb(getWindow(), "statusBarColor", startColor, endColor).start();
}
3.或者您可以將其添加到 values/styles.xml 文件中的主題樣式中。item colorPrimaryDark 將用于您的應用程序狀態欄顏色
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
但是要將狀態欄圖標顏色更改為深色,您可以使用 SYSTEM_UI_FLAG_LIGHT_STATUS_BAR 標志,該標志可用于 M 以上的 android
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
}
或將其添加到您的主題樣式 xml:
<item name="android:windowLightStatusBar">true</item>
TA貢獻1828條經驗 獲得超3個贊
在onCreate()方法中使用它:
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
這適用于 API 23+。
TA貢獻1804條經驗 獲得超3個贊
Window window = getWindow();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
window.setStatusBarColor(Color.TRANSPARENT);
}
else {
window.setStatusBarColor(Color.WHITE);
}
添加回答
舉報
