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

时间:2016-05-19 01:51:12

标签: android android-actionbar android-navigationview

我将动作栏颜色设置为dinamically。

我试着这样:

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)
}

如何查看,我设置了操作栏颜色,并在状态栏上设置了颜色较深的颜色。我不知道这是不是正确的方法,但直到现在才开始工作。

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

1 个答案:

答案 0 :(得分:1)

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

在包含工具栏的“活动”中,添加到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% -->

这应该足以让它发挥作用。