android - 如何更新状态栏颜色并使其在抽屉上透明

标签 android android-actionbar android-navigationview

我动态地设置了操作栏的颜色。

我正在尝试这种方式:

getSupportActionBar().setBackgroundDrawable(new ColorDrawable(color));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    float[] hsv = new float[3];
    Color.colorToHSV(color, hsv);
    hsv[2] *= 0.8f;
    color = Color.HSVToColor(hsv);
    getWindow().setStatusBarColor(color)
}

如您所见,我正在设置操作栏颜色并使颜色更深以便在状态栏上设置。我不知道这是否是正确的方法,但直到现在它还在工作。

问题是当我打开抽屉时,颜色不是透明的。我怎么能在这里做?

最佳答案

您可以使用以下方法执行此操作:

在包含工具栏的 Activity 中,添加到 onCreate():

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    int flag = getWindow().getDecorView().getSystemUiVisibility();
    getWindow().getDecorView().setSystemUiVisibility(flag | View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
}

在 styles-v21 中:

<item name="android:windowTranslucentStatus">false</item>
<item name="android:statusBarColor">#30000000</item> <!-- This is gonna make status bar darker by 20% -->

这应该足以让它工作。

关于android - 如何更新状态栏颜色并使其在抽屉上透明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37312684/

相关文章:

android - ListView 未在选项卡 View 中完整查看

android - 首选项菜单中 Android 向上/向后导航的动态父 Activity

java - 默认抽屉导航 View 到 ExpandableListView

android - 如何更改导航图标颜色

java - 当用户单击第二个 recyclerview 项目时如何刷新第一个 recyclerview 数据

java - 删除的 firebase 值仍然显示在 datasnaphot 中

android - Android 选项菜单中的本 map 标拉伸(stretch)以填充菜单项,隐藏标题

android - 打开 SearchView 时隐藏应用程序图标

android - 如何识别ActionMode中是否点击了Done按钮

java - 抽屉导航中的 setText