2016-01-23 21 views
9

Próbuję dodać cień do paska narzędzi za pomocą elewacji i Biblioteki projektu. Kod układ jest coś takiego:Pasek narzędzi z nieprawidłową wysokością i cieniem

<android.support.design.widget.CoordinatorLayout ... > 
    <android.support.design.widget.AppBarLayout ... > 
    <android.support.design.widget.CollapsingToolbarLayout ... > 
     <android.support.v7.widget.Toolbar 
      android:id="@+id/app_bar" 
      android:layout_width="match_parent" 
      android:layout_height="?actionBarSize" 
      app:contentInsetStart="16dp" 
      android:background="@color/colorPrimary" 
      android:elevation="16dp" 
     /> 
    </android.support.design.widget.CollapsingToolbarLayout> 
    </android.support.design.widget.AppBarLayout> 

Kompletny kod źródłowy aplikacji jest dostępny na github.

Problem polega na tym, że wysokość paska narzędzi lub cień nie zachowują się tak, jak się spodziewam. Jeśli obejrzysz zrzut ekranu poniżej, zauważysz problem.

Co muszę zrobić, to wyświetlić cień poniżej niebieskiego obszaru.

Current Toolbar

Każda wskazówka jest bardzo ceniona.

+2

Cień może pochodzić z twojej elewacji. Poza tym nigdy nie użyłem 'CollapsingToolbarLayout', ani' AppBarLayout', więc nie wiem nawet, co masz na myśli mówiąc o swoim wzroście, który nie działa zgodnie z oczekiwaniami. – CommonsWare

Odpowiedz

6

Jak wspomniano there, to przez wdrożenie CollapsingToolbarLayout - elewacja zostanie usunięty jeśli CollapsingToolbarLayout pokazuje non przypięte-elementy:

if (Math.abs(verticalOffset) == scrollRange) { 
    // If we have some pinned children, and we're offset to only show those views, 
    // we want to be elevate 
    ViewCompat.setElevation(layout, layout.getTargetElevation()); 
} else { 
    // Otherwise, we're inline with the content 
    ViewCompat.setElevation(layout, 0f); 
} 

Więc wszystko co mogę zasugerować to zrobić własny CollapsingToolbarLayout kopiując oryginał CollapsingToolbarLayout od Google i wprowadzaj zmiany w tym stanie.

4

Przeniesienie elewacji na AppBarLayout. CollapsingToolbarLayout zmienia rozmiar, więc ustawienie go w AppBarLayout tworzy cień we właściwej pozycji.

<android.support.design.widget.CoordinatorLayout ... > 
<android.support.design.widget.AppBarLayout 
     android:elevation="16dp"> 
    <android.support.design.widget.CollapsingToolbarLayout ... > 
    <android.support.v7.widget.Toolbar ... /> 
    </android.support.design.widget.CollapsingToolbarLayout> 
</android.support.design.widget.AppBarLayout> 
+0

Dziękuję bardzo za szybką odpowiedź. Próbowałem już tego, więc dodając kolor tła do AppBarLayout i to nie działa. – RobertoAllende

Powiązane problemy