9

Я попытался реализовать панель инструментов с градиентным фоном (от черного до прозрачного). Панель инструментов находится внутри AppBarLayout, которая находится внутри CoordinatorLayour, потому что я хочу, чтобы панель инструментов соскальзывала с экрана при прокрутке экрана (прокручивайте флажки прокрутки | enterAlways scroll). Это отлично работает для версий до леденцов и выглядит следующим образом:Android: App графа градиента AppBarLayout

enter image description here

Но леденец это то, что отображается:

weird upside down trapezoid in the background

Я попробовал другие комбинации слоев на панели инструментов и appbarlayout, чтобы получить панель инструментов с градиентным фоном, но все производит одинаковый результат. Я попытался найти похожие проблемы и не нашел ни одного.

<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

Похоже, аналогичная проблема, но я не использую высоту и визуальные результаты выглядят еще хуже. – neits

+0

У вас есть решение для этого сейчас? у меня такая же проблема! –

ответ

3

AppBarLayout создает возвышение. Поскольку панель инструментов находится внутри AppBarLayout, и панель инструментов прозрачна, боковая и нижняя тень AppBarLayout стали очевидными.

Включите app:elevation="0dp" внутри вашего AppBarLayout. Надеюсь, поможет.

+0

убедитесь, что вы используете http://schemas.android.com/apk/res-auto как URL-адрес «xmlns: app», –

0

Поместите панель инструментов и TabLayout внутри LinearLayout и установите атрибуты фона для LinearLayout, как показано ниже. Он работает, и я использовал этот код для своего приложения.

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