9

Ich habe versucht, eine Symbolleiste mit Hintergrund mit Farbverlauf (von schwarz nach transparent) zu implementieren. Die Symbolleiste befindet sich in einem AppBarLayout, das sich in einem CoordinatorLayour befindet, da die Toolbar beim Scrollen des Bildschirms vom Bildschirm abgleiten soll (hane die scroll | enterAlways scroll flags). Das funktioniert völlig in Ordnung für Pre-Lutscher Versionen und sieht wie folgt aus:Android: AppBarLayout Farbverlauf Hintergrund

enter image description here

Aber Lutscher das ist, was angezeigt wird:

weird upside down trapezoid in the background

Ich habe versucht, andere Kombinationen von Hintergründen auf der Symbolleiste und appbarlayout, um die Symbolleiste mit dem Hintergrund mit Farbverlauf zu versehen, aber alles erzeugt das gleiche Ergebnis. Ich habe versucht, nach ähnlichen Problemen zu suchen und fand keine.

<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

Scheint wie ein ähnliches Problem, aber ich benutze keine Erhebung und die visuellen Ergebnisse noch schlimmer aussehen. – neits

+0

Hattest du jetzt eine Lösung dafür? Ich habe das gleiche Problem! –

Antwort

3

AppBarLayout erzwingt eine Erhöhung. Da sich die Symbolleiste in AppBarLayout befindet und die Symbolleiste transparent ist, wurde der seitliche und untere Schatten von AppBarLayout offensichtlich.

Enthalten Sie app:elevation="0dp" in Ihrem AppBarLayout. Ich hoffe es hilft.

+0

stellen Sie sicher, dass Sie http://schemas.android.com/apk/res-auto als URL von "xmlns: app" verwenden –

0

Setzen Sie Toolbar und TabLayout in das LinearLayout und setzen Sie Hintergrundattribute für LinearLayout wie folgt. Es hat funktioniert und ich habe diesen Code für meine App verwendet.

<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>