Горизонтальный индикатор выполнения не отображается, если он установлен над панелью инструментов (для Android 5)

Я попытался установить горизонтальный индикатор выполнения в верхней части панели инструментов, имея следующий XML.

my_activity.xml

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/layout_main" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <FrameLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <!-- Toolbar --> <include layout="@layout/toolbar"/> <!-- http://stackoverflow.com/questions/14171471/remove-vertical-padding-from-horizontal-progressbar --> <ProgressBar style="?android:attr/progressBarStyleHorizontal" android:layout_width="match_parent" android:layout_height="8dp" android:id="@+id/progress_bar" android:layout_gravity="top" android:layout_marginBottom="0dp" android:layout_marginTop="-3dp" android:progress="2000" android:max="10000" /> </FrameLayout> <FrameLayout android:id="@+id/content" android:layout_width="match_parent" android:layout_height="match_parent" > <ProgressBar style="?android:attr/progressBarStyleHorizontal" android:layout_width="match_parent" android:layout_height="8dp" android:id="@+id/progress_bar2" android:layout_gravity="top" android:layout_marginBottom="0dp" android:layout_marginTop="-3dp" android:progress="2000" android:max="10000" /> </FrameLayout> </LinearLayout> 

toolbar.xml

 <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/toolbar" android:layout_height="wrap_content" android:layout_width="match_parent" android:minHeight="?attr/actionBarSize" android:background="?attr/colorPrimary" android:elevation="4dp" app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" > <!-- android:elevation="4dp" is used due to http://www.google.com/design/spec/what-is-material/elevation-shadows.html#elevation-shadows-elevation-android- --> </android.support.v7.widget.Toolbar> 

Это работает отлично в Android 4+. Вот скриншот для Android 4+

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

Однако, когда дело доходит до Android 5+, горизонтальный индикатор выполнения не отображается в верхней части панели инструментов.

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

Если я удалю строку

 <include layout="@layout/toolbar"/> 

Я получу следующий снимок экрана в Android 5+

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

Кажется, что верхний индикатор прогресса заблокирован панелью инструментов? Но, как я думал в FrameLayout , индикатор выполнения имеет более высокий z-порядок, чем панель инструментов?

Могу ли я узнать, как я могу сделать горизонтальный индикатор прогресса видимым, если он находится над панелью инструментов, в Android 5+

На устройствах Android 5.0+ при определении z-порядка компонентов учитывается возвышение – те, у кого более высокая отметка, заметно выше тех, у кого более низкая высота, даже если более высокий элемент позиции объявлен ранее в файле XML (обычно вызывающий Это должно быть позади).

Вы можете добавить возвышение к вашему ProgressBar , соответствуя высоте Toolbar что обеспечит выполнение того же z-порядка, что и в предыдущих версиях Android.

Попытайтесь использовать это:

 <RelativeLayout android:id="@+id/container_toolbar" android:layout_width="match_parent" android:layout_height="wrap_content"> <include android:id="@+id/toolbar" layout="@layout/toolbar" /> // try to set your progress bar here // on top of the toolbar </RelativeLayout>