更改状态栏默认颜色
change status bar default color
当我打开我的应用程序一秒钟时,它显示蓝色的状态栏,尽管我声明颜色为红色。
风格方面:
<style name="AppTheme" parent="Theme.AppCompat.DayNight.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:statusBarColor">@color/colorPrimaryDark</item>
</style>
</resources>
在Colors.xml
<resources>
<color name="colorPrimary">#a20dff</color>
<color name="colorPrimaryDark">#ff0000</color>
<color name="colorAccent">#FF4081</color>
</resources>
值得一提的是,我在语法上将颜色更改为另一种颜色(由用户指定)later.But,因为在第一秒它看起来很丑。
尝试在您的 v21 主题中添加以下行:
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
或
您可以像下面这样以编程方式完成:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Window window = getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.setStatusBarColor(Color.BLUE);
}
实施以下方法(在您的Activity中)
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public void setStatusBarColor(int statusBarColorResId) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
getWindow().setStatusBarColor(getResources().getColor(statusBarColorResId));
else Log.e("setStatusBarColor", "Operation not supported");
}
按如下方式调用它(例如,从 onCreate)
setStatusBarColor(R.color.status_bar_color);
当我打开我的应用程序一秒钟时,它显示蓝色的状态栏,尽管我声明颜色为红色。
风格方面:
<style name="AppTheme" parent="Theme.AppCompat.DayNight.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:statusBarColor">@color/colorPrimaryDark</item>
</style>
</resources>
在Colors.xml
<resources>
<color name="colorPrimary">#a20dff</color>
<color name="colorPrimaryDark">#ff0000</color>
<color name="colorAccent">#FF4081</color>
</resources>
值得一提的是,我在语法上将颜色更改为另一种颜色(由用户指定)later.But,因为在第一秒它看起来很丑。
尝试在您的 v21 主题中添加以下行:
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
或
您可以像下面这样以编程方式完成:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Window window = getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.setStatusBarColor(Color.BLUE);
}
实施以下方法(在您的Activity中)
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public void setStatusBarColor(int statusBarColorResId) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
getWindow().setStatusBarColor(getResources().getColor(statusBarColorResId));
else Log.e("setStatusBarColor", "Operation not supported");
}
按如下方式调用它(例如,从 onCreate)
setStatusBarColor(R.color.status_bar_color);