Изменение цвета текста строки состояния, когда primaryDark белый

Я пытаюсь воспроизвести поведение приложения Google Calendar: enter image description here

но я не нашел способ изменить цвет текста статуса. Если я установлю colorPrimaryDark как Белый, я не вижу значков, ни текст строки состояния из-за их цвета также белый.

есть ли способ изменить цвет текста строки состояния?

спасибо заранее

2 ответов


Я не уверен, какой уровень API вы пытаетесь настроить, но если вы можете использовать API 23, Вы можете добавить следующие стили AppTheme.XML-код:

<item name="android:statusBarColor">@color/colorPrimaryDark</item>
<item name="android:windowLightStatusBar">true</item>

, когда android:windowLightStatusBar имеет значение true, цвет текста строки состояния будет виден, когда цвет строки состояния белый, и наоборот когда android:windowLightStatusBar имеет значение false, цвет текста строки состояния будет отображаться, когда цвет строки состояния темный.

пример:

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <!-- Status bar stuff. -->
    <item name="android:statusBarColor">@color/colorPrimaryDark</item>
    <item name="android:windowLightStatusBar">true</item> 
</style>

вы можете сделать это программно, как это ответ

просто добавить этот

getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);