如何更改 Android 中的状态栏颜色?

新手上路,请多包涵
阅读 1.1k
2 个回答

更新:

棒糖:

 public abstract void setStatusBarColor (int color)

在 API 级别 21 中添加

Android Lollipop 带来了更改应用中状态栏颜色的功能,以获得更加身临其境的用户体验,并与 Google 的 Material Design Guidelines

这是使用 window.setStatusBarColor API level 21 状态栏颜色的方法。

更改状态栏的颜色还需要在 Window 上设置两个附加标志;您需要添加 FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS 标志并清除 FLAG_TRANSLUCENT_STATUS 标志。

工作代码:

 import android.view.Window;

 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(ContextCompat.getColor(activity,R.color.my_statusbar_color));

官方开发者参考: setStatusBarColor(int)

示例: 材料设计无处不在

Chris Banes 博客- appcompat v21:棒棒糖前设备的材料设计!

在此处输入图像描述

视图背景的 transitionName 将是 android:status:background

原文由 codercat 发布,翻译遵循 CC BY-SA 4.0 许可协议

在 kotlin 中,我可以使用以下方法解决此问题:

   window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS)
  window.statusBarColor = ContextCompat.getColor(this, android.R.color.transparent)

原文由 Carl M. Cartagena 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题