Я пытаюсь установить цвета строки состояния, но возникают проблемы с другим уровнем API.

Я хочу темный цвет значка и желтый фон. Я установил стиль версии, но он не настраивается для уровня API 21. Пожалуйста, посмотрите снимок экрана, отмеченный красным.

enter image description here

Вот код

V23 \ styles.xml

<style name="AppTheme" parent="Theme.AppCompat.Light">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:windowBackground">@color/colorPrimaryBackground</item>
    <item name="android:textColor">@color/colorPrimaryText</item>
    <item name="android:windowLightStatusBar">true</item>
</style>

По умолчанию styles.xml

<style name="AppTheme" parent="Theme.AppCompat.Light">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:windowBackground">@color/colorPrimaryBackground</item>
    <item name="android:textColor">@color/colorPrimaryText</item>
</style>
0
Code Lover 11 Мар 2019 в 13:52

1 ответ

Лучший ответ

То, что вы хотите сделать, возможно для api> 23 Попробуйте следующий код:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
 View decor = getWindow().getDecorView();
 if (shouldChangeStatusBarTintToDark) {
    decor.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
 } else {
    // We want to change tint color to white again.
    // You can also record the flags in advance so that you can turn UI back completely if
    // you have set other flags before, such as translucent or full screen.
    decor.setSystemUiVisibility(0);
 }
}
2
AskNilesh 11 Мар 2019 в 11:02