我动态地设置了操作栏的颜色。
我正在尝试这种方式:
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/