2015-07-25 11 views
8

Przyjmijmy, że wszystko jest tylko dla celu, a minSDK to tylko Lollipop.Exploring fitsSystemWindows i przezroczysty pasek stanu w Androidzie

Co chcę

próbuję wdrożyć aktywność podobną do następnego ekranu ze sklepu Play.

enter image description here

jestem koncentrując się na obrazie Hero tutaj. Jak widzisz, 1. Obraz bohatera jest rysowany za paskiem stanu. (Całkowicie przezroczysty Brak ochrony). (Na przykład Pasek narzędzi/Pasek czynności) 3. Podczas przewijania paska stanu jest kolorowany.

Co mam zrobić

Użyłem ScrimInsetsFrameLayout z GoogleIO aplikacji. Zawinął obraz mojego bohatera wokół tego układu. Dodano odpowiednią stylizację w moim motywie. To co mam

enter image description here

Pomoc muszę

  1. nadal jestem zagubiony tagu fitsSystemWindows. Kiedy ustawię to na "true" w układzie obrazu bohatera, nic się nie dzieje. To jest pasek stanu jest przezroczysty, ale obraz jest rysowany poniżej paska stanu. Jeśli ustawione na "false", otrzymuję powyższy wynik. Czy istnieje czytelny artykuł wyjaśniający sposób użycia i ukryty za tym tagiem.

  2. Ustawiłem "insetForeground" na ScrimInsetFrameLayout na przezroczysty. Również w motywie ustawiam kolor paska stanu jako przezroczysty. Ale wciąż istnieje ochrona nad obrazem. Jak sprawić, by pasek stanu był całkowicie przezroczysty.

Prosimy o pomoc przy pomocy wskaźników lub projektów demonstracyjnych. Daj mi również znać, jeśli nie jestem jasny lub potrzebujesz więcej informacji.

Odpowiedz

1

To działa dla mnie.

layout.xml

<android.support.design.widget.CoordinatorLayout 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="match_parent" 
     android:fitsSystemWindows="true"> 

     <android.support.design.widget.AppBarLayout 
      android:id="@+id/appbar" 
      android:layout_width="match_parent" 
      android:layout_height="@dimen/detail_backdrop_height" 
      android:fitsSystemWindows="true" 
      android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 

      <android.support.design.widget.CollapsingToolbarLayout 
       android:id="@+id/collapsing_toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:fitsSystemWindows="true" 
       app:contentScrim="?attr/colorPrimary" 
       app:expandedTitleMarginEnd="64dp" 
       app:expandedTitleMarginStart="48dp" 
       app:layout_scrollFlags="scroll|exitUntilCollapsed"> 

       <ImageView 
        android:id="@+id/backdrop" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:fitsSystemWindows="true" 
        android:scaleType="centerCrop" 
        app:layout_collapseMode="parallax" /> 

       <android.support.v7.widget.Toolbar 
        android:id="@+id/parallax_toolbar" 
        android:layout_width="match_parent" 
        android:layout_height="?attr/actionBarSize" 
        app:layout_collapseMode="pin" 
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> 

      </android.support.design.widget.CollapsingToolbarLayout> 

     </android.support.design.widget.AppBarLayout> 

     <FrameLayout 
      android:id="@+id/fragmentContainer" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 

    </android.support.design.widget.CoordinatorLayout> 

i ustawić statusBarColor atrybut z przezroczystego koloru w styles.xml v-21

+0

Jak to jest blisko obrazu za paskiem stanu bez przezroczystego płótna? – iBobb

+1

ustawienie android: fitsSystemWindows = "true" w ImageVied naprawił to dla mnie, dziękuję – TomaszRykala

+0

Dodaj, Do użycia fistystemwidows potrzebuj przed ustawieniem w wartości21/styles.xml true Webserveis

0

Dodaj następujący wiersz do widoku, w którym nie ma pasku narzędzi, aby pokrywać:

app:layout_behavior="@string/appbar_scrolling_view_behavior" 
Powiązane problemy