如何更改Android中状态栏的颜色?
答
您可以通过设置您使用的是您的应用程序的风格android:statusBarColor
或android:colorPrimaryDark
属性在styles.xml改变它。
(android:statusBarColor
继承默认的android:colorPrimaryDark
值)
例如(因为我们在这里使用程序兼容性的主题,省略了android
命名空间):
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimaryDark">@color/your_custom_color</item>
</style>
在API层面21+您也可以使用代码中的Window.setStatusBarColor()
方法。
答
<item name="colorPrimaryDark">@color/your_color</item>
将只在棒棒堂可见,比棒棒堂(API)的设备更大。 P.S.您需要将Theme.AppCompat作为您的基本/主要主题
答
状态栏是操作系统拥有的系统窗口。 在5.0之前的Android设备上,应用程序没有权限更改其颜色,所以这不是AppCompat
库可以支持的老版平台版本。最好的AppCompat
可以做的是为应用程序中的ActionBar
和其他常用UI小部件着色提供支持。
在5.0之后的Android设备上, 改变状态栏的颜色也需要在窗口上设置两个附加标志;您需要添加FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS
标志并清除FLAG_TRANSLUCENT_STATUS
标志。
Window window = activity.getWindow();
// clear FLAG_TRANSLUCENT_STATUS flag:
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
// add FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS flag to the window
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
// finally change the color
window.setStatusBarColor(activity.getResources().getColor(R.color.my_statusbar_color));
答
您也可以在主要活动中添加几行代码
if (Build.VERSION.SDK_INT >= 21) {
getWindow().setNavigationBarColor(ContextCompat.getColor(this, R.color.dark_nav)); // Navigation bar the soft bottom of some phones like nexus and some Samsung note series
getWindow().setStatusBarColor(ContextCompat.getColor(this,R.color.statusbar)); //status bar or the time bar at the top
}
你说的是状态栏或电话的底部酒吧或其他什么东西?请更具体的 – KDeogharkar
@KDeogharkar图片是告诉所有的事情。我不知道这个术语。 – Humty
ohk我无法看到它。 imgur阻止我结束。我的错误 – KDeogharkar