Изменение цвета строки состояния при входе в контекстный режим действия

У меня есть приложение, которое использует атрибут theme (colorPrimaryDark) для цветной строки состояния на Android v21 +:

enter image description here

Это прекрасно работает. Теперь, когда пользователь долго нажимает элемент списка и входит в режим контекстного действия, я могу покрасить панель CAB с помощью атрибута actionModeBackground, чтобы он выглядел следующим образом:

enter image description here

Итак, панель действий серая, и это то, что я хочу, но строка состояния по-прежнему окрашена с использованием темного цвета . Я не хочу этого, я хочу изменить его на темно-серый или черный.

Как я могу это сделать? Я не вижу никаких атрибутов темы, которые будут работать здесь.

Ответ 1

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