进入上下文操作模式时更改状态栏的颜色

我有一个应用程序使用主题属性(colorPrimaryDark)为Android v21 +上的状态栏着色:

在这里输入图像说明

这工作正常。 现在,当用户长按列表项并进入上下文动作模式时,我可以使用属性actionModeBackground对CAB栏进行着色,如下所示:

在这里输入图像说明

所以操作栏是灰色的,这是我想要的,但是状态栏仍然使用主题深色来着色 。 我不想要那个,我想把它改成深灰色或黑色。

我怎样才能做到这一点? 我没有看到任何在这里工作的主题属性。

Solutions Collecting From Web of "进入上下文操作模式时更改状态栏的颜色"

  private int statusBarColor; @Override public boolean onCreateActionMode(ActionMode mode, Menu menu) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { //hold current color of status bar statusBarColor = getWindow().getStatusBarColor(); //set your gray color getWindow().setStatusBarColor(0xFF555555); } ... } ... @Override public void onDestroyActionMode(ActionMode mode) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { //return to "old" color of status bar getWindow().setStatusBarColor(statusBarColor); } ... } });