【发布时间】:2016-11-06 23:19:26
【问题描述】:
是否可以通过编程方式更改透明状态栏的背景颜色?
我已使用以下代码将状态栏设置为透明,因此我也可以将导航抽屉放在状态栏中,而状态栏不会与导航抽屉重叠。
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:statusBarColor">@android:color/transparent</item>
状态栏的背景颜色取自
<item name="colorPrimaryDark">@color/primary_dark</item>
是否可以通过编程方式更改此颜色并使状态栏仍然透明?
我尝试过使用
window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
window.setStatusBarColor(statusBarColor);
但状态栏上面有一层难看的黑色纱布,我不想要。
还有其他方法可以以编程方式存档吗?我需要能够在运行时更改颜色。此外,每种颜色都有不同的样式也不是一种选择,因为用户应该能够选择颜色。
编辑:这就是我在使用setStatusBarColor(int); 更改其颜色时与导航抽屉重叠的状态栏的意思。我仍然希望导航抽屉与状态栏重叠。
【问题讨论】:
-
您已经将颜色设置为透明,因此您不能在透明条上设置其他颜色。
-
@OnkarNene 但没有办法改变透明度以下的颜色吗?设置primaryDark也会改变它,所以即使它是透明的,也必须有办法改变它。
标签: android-layout colors window styles statusbar