更改片段更改时的状态栏颜色[Android棒棒糖]

更改片段更改时的状态栏颜色[Android棒棒糖],android,android-layout,android-fragments,android-5.0-lollipop,Android,Android Layout,Android Fragments,Android 5.0 Lollipop,我想知道如何根据当前活动片段(在5.0棒棒糖上)更改状态栏的颜色。目前,我根据我所处的片段更改ActionBar的颜色,但现在我希望状态栏的颜色也更改—以便在棒棒糖设备上看起来更漂亮 我尝试使用setStyle根据片段以编程方式更改主题,但它似乎没有更改状态栏的颜色 任何想法都将不胜感激 您是否尝试使用Window.setStatusBarColor更改状态栏的颜色?例如,可以执行以下操作以编程方式将状态栏颜色更改为红色 getWindow().setStatusBarColor(Color.R

我想知道如何根据当前活动片段(在5.0棒棒糖上)更改状态栏的颜色。目前,我根据我所处的片段更改ActionBar的颜色,但现在我希望状态栏的颜色也更改—以便在棒棒糖设备上看起来更漂亮

我尝试使用setStyle根据片段以编程方式更改主题,但它似乎没有更改状态栏的颜色


任何想法都将不胜感激

您是否尝试使用
Window.setStatusBarColor
更改状态栏的颜色?例如,可以执行以下操作以编程方式将状态栏颜色更改为红色

getWindow().setStatusBarColor(Color.RED);
可以找到
setStatusBarColor
的文档。您还可以阅读有关如何操作的文档

注意:此方法仅适用于棒棒糖或以上

如果看到意外的颜色,请确保传递的整数值是颜色整数,而不是资源ID

getWindow().setStatusBarColor(getResources().getColor(R.color.custom_color)); // RIGHT
getWindow().setStatusBarColor(R.color.custom_color); // WRONG

你能展示一下你试过的代码吗?这有点混乱,但本质上我有一个FragmentData对象,它存储了我想要的每个片段的样式(以及其他东西)。每当片段更改时,我将setStyle设置为该对象中的mStyle字段。只是一个旁注:这正在改变操作栏的颜色,只是状态栏的颜色似乎没有被设置。是的,当然。这不仅仅是给我的——这是给任何阅读这个问题的人的。好的,这是我现在正在使用的一段代码:
if(fragmentData!=null){updateActionBarForFragment(fragmentData);mStyle=fragmentData.getStyle();}setTheme(mStyle)
可能与So重复,
getWindow()。setStatusBarColor(…)
用于更改状态栏的颜色,但未设置正确的颜色。例如,当我将状态栏颜色设置为橙色时,它显示为紫色。你知道发生了什么吗?在android 4.4中有没有办法做到这一点?@AminKeshavarzian你必须使用app compact,并在你的样式或主题xml中使用“@color/BackgroundColor”来支持android 4.4设备。在API 21中,以编程方式更改状态栏的颜色是可能的?我想在API小于21中以编程方式更改颜色,是否可能?