Строка состояния не прозрачна при использовании новой библиотеки поддержки

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

В частности, я использую сочетание CoordinatorLayout + AppBarLayout + CollapsingToolbarLayout + Toolbar с этим иерархическим порядком.

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

Я делаю это в значениях / стилях:

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

И это в моем макете:

 <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/main_content" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.design.widget.AppBarLayout android:id="@+id/appbar" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" android:elevation="4dp" android:background="?android:colorPrimary" android:layout_width="match_parent" android:layout_height="128dp"> <android.support.design.widget.CollapsingToolbarLayout android:id="@+id/collapsingToolbarLayout" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_scrollFlags="scroll|exitUntilCollapsed" app:expandedTitleMarginStart="64dp"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:minHeight="?attr/actionBarSize" app:layout_collapseMode="pin" app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> </android.support.design.widget.CollapsingToolbarLayout> </android.support.design.widget.AppBarLayout> <android.support.v4.widget.NestedScrollView android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <android.support.v7.widget.CardView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginStart="16dp" android:layout_marginEnd="16dp" app:cardCornerRadius="4dp" app:cardElevation="6dp"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Latest Stories"/> <TextView android:id="@+id/latest_story_title" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Title Example"/> <TextView android:id="@+id/latest_story_preview" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Content Example, this should be around 250 chars"/> </LinearLayout> </android.support.v7.widget.CardView> </LinearLayout> </android.support.v4.widget.NestedScrollView> <android.support.design.widget.FloatingActionButton android:id="@+id/fab_add_story" android:layout_width="wrap_content" android:layout_height="wrap_content" app:fabSize="normal" app:layout_anchor="@id/appbar" app:layout_anchorGravity="bottom|right|end" app:borderWidth="0dp" android:layout_margin="16dp"/> <View android:id="@+id/ripple_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:visibility="visible" android:elevation="10dp" android:stateListAnimator="@null" android:clickable="false"/> 

(Извините за ужасное форматирование, похоже, что редактор SO не будет сотрудничать)

Будет ли это исправлено в будущей версии или есть способ обойти это?

Всем спасибо.

    Попробуйте установить прозрачный флаг – он был добавлен в уровне api 19:

     getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); 

    http://developer.android.com/reference/android/view/WindowManager.LayoutParams.html#FLAG_TRANSLUCENT_STATUS

    Изменить: он не работает на уровне api ниже 19. (требуется минимальный набор KitKat)

    Добавьте эти строки в значения / styles.xml

      <style name="MyTheme" parent="Base.MyTheme"></style>    <style name="Base.MyTheme" parent="Theme.AppCompat.Light.NoActionBar"> <item name="colorPrimary">@color/primary_500</item> <item name="colorPrimaryDark">@color/primary_700</item> <item name="colorAccent">@color/accent_500</item> <item name="windowActionBar">false</item> <item name="windowActionBarOverlay">true</item> <item name="windowNoTitle">true</item> <item name="android:windowBackground">@color/background_material_light</item> 

    Добавьте код ниже в значения-v21 / styles.xml

     <style name="MyTheme" parent="Base.MyTheme"> <item name="android:windowDrawsSystemBarBackgrounds">true</item> </style> 

    Примечание. Вы можете установить только полупрозрачный статус с помощью этого метода на Lollipop и выше API

    Задайте тему уровня приложения для MyTheme