9

Ho provato a implementare una barra degli strumenti con sfondo sfumato (dal nero al trasparente). La barra degli strumenti si trova all'interno di un AppBarLayout, che si trova all'interno di un CoordinatorLayour, poiché desidero che la barra degli strumenti scorra dallo schermo quando si scorre lo schermo (con lo scroll | enterAlways scroll flags). Questo funziona perfettamente bene per le versioni pre-lecca-lecca e si presenta così:Android: sfondo gradiente AppBarLayout

enter image description here

Ma lollipop questo è ciò che viene visualizzato:

weird upside down trapezoid in the background

ho provato altre combinazioni di sfondi sulla barra degli strumenti e appbarlayout per avere la barra degli strumenti per avere lo sfondo sfumato, ma tutto produce lo stesso risultato. Ho provato a cercare problemi simili e non ne ho trovati.

<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.support.design.widget.AppBarLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@drawable/gradient"> 

     <android.support.v7.widget.Toolbar 
      android:layout_height="wrap_content" 
      android:layout_width="match_parent" 
      android:background="@android:color/transparent" 
      app:layout_scrollFlags="scroll|enterAlways"> 

      ... 

     </android.support.v7.widget.Toolbar> 
    </android.support.design.widget.AppBarLayout> 
</android.support.design.widget.CoordinatorLayout> 
+1

https://code.google.com/p/android/issues/detail?id=180119 – jpardogo

+0

sembra un problema simile, ma io non uso elevazione e i risultati visivi aspetto ancora peggio. – neits

+0

hai una soluzione per questo ora? ho lo stesso problema! –

risposta

3

AppBarLayout forza un'altezza. Poiché la barra degli strumenti si trova all'interno di AppBarLayout e la barra degli strumenti è trasparente, l'ombra laterale e inferiore di AppBarLayout diventa evidente.

Includi app:elevation="0dp" all'interno di AppBarLayout. Spero che sia d'aiuto.

+0

assicurati di utilizzare http://schemas.android.com/apk/res-auto come url di "xmlns: app" –

0

Inserisci barra degli strumenti e TabLayout all'interno di LinearLayout e imposta gli attributi di sfondo per LinearLayout come indicato di seguito. Ha funzionato e ho usato questo codice per la mia app.

<android.support.design.widget.AppBarLayout 
    android:id="@+id/appbar" 
    android:layout_width="match_parent" 
    android:layout_height="72dp" 
    android:theme="@style/AppTheme.AppBarOverlay"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical" 
     android:background="@drawable/appbar_bg"> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="36dp" 
      android:background="@android:color/transparent" 
      app:layout_scrollFlags="scroll|enterAlways" 
      app:popupTheme="@style/AppTheme.PopupOverlay"> 

     </android.support.v7.widget.Toolbar> 

     <android.support.design.widget.TabLayout 
      android:id="@+id/tabs" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" /> 

    </LinearLayout> 

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