当我运行我的应用程序时,状态栏显示为灰色,没有任何图标。
我正在使用Theme.AppCompat.Light.NoActionBar
有什么想法吗?
编辑: 这是我的AppTheme:
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowContentOverlay">@null</item>
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/background_grey</item>
<item name="android:textColorPrimary">@color/black_effective</item>
<item name="android:textColor">@color/black_effective</item>
<item name="android:textColorHint">@color/text_grey</item>
<item name="android:windowBackground">@color/bg_color</item>
<item name="android:textAllCaps">false</item>
<item name="android:textSize">16sp</item>
<item name="android:typeface">sans</item>
<item name="drawerArrowStyle">@style/MaterialDrawer.DrawerArrowStyle</item>
<item name="android:textAppearance">@style/TextAppearance.Text.Regular</item>
<item name="android:homeAsUpIndicator">@drawable/ic_arrow_back_white_24px</item>
</style>
答案 0 :(得分:2)
这是在手动更改/设置操作栏后设置状态栏颜色的一种方法。注意:我仅在API 23上对此进行了测试:
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
actionBar.setDefaultDisplayHomeAsUpEnabled(true);
Window window = getWindow();
if (Build.VERSION.SDK_INT >= 21) {
actionBar.setElevation(0);
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
window.setStatusBarColor(getResources().getColor(R.color.colorPrimaryDark));
}
}
答案 1 :(得分:2)
您可以为应用创建新主题并更改values / styles.xml中的颜色
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light">
<item name="colorPrimary">@color/color_primary</item>
<item name="colorPrimaryDark">@color/color_secondary</item>
<item name="colorAccent">@color/color_accent</item>
<item name="android:statusBarColor">@color/color_primary</item>
</style>
</resources>
当您想要将正确的颜色放在正确的位置时,请记住此图像:
在此处查看此问题How to change the status bar color in android这可能会对您有所帮助
答案 2 :(得分:0)
尽管@ Leonardo-cavazzani的答案对大多数情况都有效。在我的情况下,我可以通过删除这行代码来显示状态栏图标:
<item name="android:windowContentOverlay">@null</item>