Intereting Posts
Выравнивание ImageView с правой стороны макета Передача данных не примитивного типа между действиями в android Быстро получить текущее местоположение и один раз в android Как добавить предложение WHERE в Query on android Как использовать notifyDataSetChanged () в потоке Есть ли способ запустить приложение сразу после установки с помощью некоторого «вспомогательного приложения»? Получение `Error: Can not get property ': lib' on null object` в новом проекте Android Studio Преимущество использования одиночного TableLayout вместо нескольких LinearLayouts, поскольку TableRow расширяет только LinearLayout Проблема с обнаружением блокировки слежения от широковещательного приемника Как использовать андроид: maxWidth? Android очистить поток веб-просмотра, свободной памяти, избежать OutOfMemoryError Как создать Gridview как приложение-опекун API Android, чтобы проверить, активен ли вызов или приостановлен Android: контекстное меню с одним щелчком мыши Как заблокировать телефон от зарядки через USB программно

Android: фон градиента AppBarLayout

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

Введите описание изображения здесь

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

Странная перевернутая трапеция на заднем плане

Я попробовал другие комбинации фона на панели инструментов и 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> 

Solutions Collecting From Web of "Android: фон градиента AppBarLayout"

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

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

Поместите панель инструментов и 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>