@razer89
Android-разработчик

CoordinatorLayout и fitsSystemWindows?

Добрый вечер!
Стоит задача отобразить фотографию под статус-баром и тулбаром. Для прокрутки использую 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 к верху) она почему-то выходит на передний план. Помогите советом, кто сталкивался с таким.
Заранее спасибо!
  • Вопрос задан
  • 3328 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы