2016-10-22 8 views
0

Почему в моей строке состояния есть этот цвет? Мне нужен один и тот же цвет, что и на панели инструментов (синий)Неверный цвет в строке состояния

enter image description here

styles.xml

<style name="MFB" parent="Theme.AppCompat.Light.NoActionBar"> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="colorAccent">@color/colorAccent</item> 
    <item name="windowActionModeOverlay">true</item> 
    <item name="android:statusBarColor">@android:color/transparent</item> 
</style> 

settingsactivity.xml

<?xml version="1.0" encoding="utf-8"?> 

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:fitsSystemWindows="true" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
    <include 
     android:id="@+id/toolbar" 
     layout="@layout/toolbar" /> 
    <FrameLayout 
     android:id="@+id/content_frame" 
     android:layout_below="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 
</RelativeLayout> 

В основной деятельности его рабочей отлично, посмотрите:

enter image description here

Я не знаю, что здесь не так ... я искал ответ на другую должность, но так же я получил белый статус бар:/

Спасибо :) и жаль, если это нуб вопрос

EDIT

Toolbar.xml:

<android.support.v7.widget.Toolbar 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:minHeight="?attr/actionBarSize" 
android:background="?attr/colorPrimary" 
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/> 

Примечание: им с помощью

"com.android.support:appcompat-v7:23.4.0" 
"com.android.support:design:23.4.0" 
+0

первый из всех укажите, какая версия вашего устройства, а также разместите файл макета панели инструментов, как вы применяете? – Ironman

ответ

0

Все, что вам нужно сделать, это установить эти свойства в вашей теме:

истинный истинного

Ваш макет деятельности/контейнера, которые вы хотите иметь прозрачная строка состояния нуждается в этом свойстве:

android: fitsSystemWindows = "true"

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { 
      Window w = getWindow(); // in Activity's onCreate() for instance 
      w.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS); 
     } 

еще пройти по этой ссылке поможет вам

completely transparent status bar and navigation bar on lollipop

Надеются, что это поможет кому-то :).

Теперь мне нужно только сделать его обратно совместимым.

+0

Посмотрите на это: http://i.imgur.com/30yskbb.png – ZeeRooo

1

Я думаю, проблема в том, что вы не создаете res/values-v21 folder для своего проекта. для того, чтобы дать другой стиль Lollipop и верхнему устройству, вы должны создать папку values-v21 в каталоге res и определить свой стиль там.

styles.xml

<?xml version="1.0" encoding="utf-8"?> 
<resources> 

    <style name="AppBaseTheme" parent="AppTheme"> 
     <item name="android:windowDrawsSystemBarBackgrounds">true</item> 
     <item name="android:statusBarColor">@color/blue</item> 
    </style> 

</resources> 
1
<style name="MFB" parent="Theme.AppCompat.Light.NoActionBar"> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="colorAccent">@color/colorAccent</item> 
    <item name="windowActionModeOverlay">true</item> 
    <item name="android:statusBarColor">@android:color/transparent</item> 
</style> 

изменения над Android: statusBarColor в вашем стиле.

<item name="android:statusBarColor">@color/blue</item> 

Это работа. Я надеюсь, что это решит вашу проблему.

+0

Нет, потому что когда im в меню навигации, строка состояния полностью голубая и должна быть прозрачной: https: //i.stack.imgur. com/dBhcd.png – ZeeRooo

0

Попробуйте удалить <item name="android:statusBarColor">@android:color/transparent</item> thisline. Строка состояния принимает цвет от colorPrimaryDark. Установите этот цвет на желаемый.

Смотреть эту

enter image description here

РЕДАКТИРОВАНИЕ

Если вы хотите изменить цвет строки состояния на каком-то этапе в вашем приложении, вы можете попробовать это

Window window = getWindow(); 
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); 
window.setStatusBarColor(YOUR_COLOR); 
+0

Если я использую 'Window window = getWindow(); window.addFlags (WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); window.setStatusBarColor (YOUR_COLOR); ' об активности настроек _ (color.transparent) _ он использует белый фон и не имеет цвета панели инструментов. У моего приложения есть движок темы (разные цвета для выбора), и мне нужна строка состояния с тем же цветом, что и тема. – ZeeRooo

Смежные вопросы