Добрый вечер!
Стоит задача отобразить фотографию под статус-баром и тулбаром. Для прокрутки использую CoordinatorLayout и кастомный Behavior, в котором в будущем будет реализована кое-какая трансформация. На видео синяя полоса "прилеплена" к AppBarLayout с помощью атрибутов:
app:layout_anchor="@id/appbar"
app:layout_anchorGravity="bottom"
Вот весь лайаут:
<?xml version="1.0" encoding="utf-8"?>
<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:fitsSystemWindows="true">
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
app:layout_scrollFlags="scroll|snap">
<FrameLayout
android:id="@+id/main_frame"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true"
android:orientation="vertical"
app:layout_collapseMode="parallax">
<com.example.DynamicRelativeLayout
android:id="@+id/dynamic_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/logo"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop" />
</com.example.DynamicRelativeLayout>
</FrameLayout>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<com.example.ui.ExpandableLayout
android:id="@+id/expandable_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:el_contentLayout="@layout/order_details_content"
app:el_headerLayout="@layout/empty_layout" />
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
<include
android:id="@+id/details_header"
layout="@layout/order_details_header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true"
app:layout_anchor="@id/appbar"
app:layout_anchorGravity="bottom"
app:layout_behavior="com.example.OrderHeaderBehavior" />
<include
android:id="@+id/toolbar"
layout="@layout/transparent_toolbar"
android:layout_width="match_parent"
android:layout_height="?android:attr/actionBarSize" />
</android.support.design.widget.CoordinatorLayout>
DynamicRelativeLayout - обычный RelativeLayout с переопределенным методом
onMeasure, подстраивает свою высоту под соотношение 16:9.
ExpandableLayout - разворачивающийся лайаут
отсюда. В качестве хедера скормил ему "пустышку" -
@layout/empty_layout, т.к. для моих целей нужно, чтобы хедер находился в
CoordinatorLayout. Собственно, для этого и нужен
id/details_header, при клике на который разворачивается
ExpandableLayout.
Как видно на
видео - при скролле картинка перекрывается лайаутом details_header, но в какой-то момент (если быть точным - в момент "прилипания"
AppBarLayout к верху) она почему-то выходит на передний план. Помогите советом, кто сталкивался с таким.
Заранее спасибо!