2016-11-17 5 views
0

Я создал страницу настроек с ActionBarActivity, и я сделал строку состояния полупрозрачный, добавив следующие строки в тему:Android приложения - полупрозрачный строка состояния показывает, как белый

<item name="android:windowTranslucentStatus">true</item> 
<item name="android:fitsSystemWindows">true</item> 

Проблема в строке состояния белый, я хочу, чтобы он был цветом темной полосы заголовка. Я замечаю, когда меняю цвет фона с белого на желтый (область ниже «настроек»), строка состояния также изменяется, поэтому она отображает цвет из фона вместо заголовка. Кто-нибудь знает, как я могу это исправить?

enter image description here

ответ

0

При использовании AppCompat темы, то строка состояния принимает его цвет из colorPrimaryDark элемента:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <item name="colorPrimaryDark">@color/primary_dark</item> 
</style> 

В качестве альтернативы, вы можете установить цвет в строке состояния в леденец и выше следующим образом:

public static void setStatusBarColor(Activity activity, int color) { 
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
     activity.getWindow().setStatusBarColor(color); 
    } 
} 
+0

colorPrimaryDark ничего не делает, если у вас есть окноTranslucentStatus, установленное в true, I ju st попробовал это –

+0

@MichaelPetrashko Я думал, что вы пытались сделать свою строку состояния той же окраской, что и панель инструментов. Если да, почему бы не просто удалить прозрачность состояния и установить цвет самостоятельно? – PPartisan

+0

Вот приложение для видеовстречи, например: https://cdn.arstechnica.net/wp-content/uploads/2016/01/16-1.jpg В верхней части экрана есть полупрозрачная строка состояния зеленый, что создает темный зеленый оттенок. Это именно то, что я хочу, чтобы быть полупрозрачным с более темным оттенком. –