Подтвердить что ты не робот

КоординаторLayout оставляет пустое место внизу после прокрутки

Я пытаюсь внедрить новейшие дизайнерские трюки Google с помощью CoordinatorLayout и иметь проблемы с эффектом прокрутки и параллакса.

После того, как активность отображается, все выглядит нормально, но проблема возникает, когда я пытаюсь прокручивать. Кажется, что нижний вид не расширен правильно и после прокрутки вверху появляется пустое пространство. Bottom View кажется большим, насколько он имеет на начальном дисплее между верхним видом и навигационной панелью.

Это выглядит примерно так:

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

Соответствующий код:

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

<CoordinatorLayout
    android:layout_height="match_parent"
    android:layout_width="match_parent">

    <AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <CollapsingToolbarLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_scrollFlags="scroll|exitUntilCollapsed"
            app:expandedTitleMarginStart="72dp"
            app:expandedTitleMarginEnd="16dp">

            <ImageView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                app:layout_collapseMode="parallax"/>
        </CollapsingToolbarLayout>
    </AppBarLayout>

    <ViewPager
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"/>

</CoordinatorLayout>
</FrameLayout>

Это странное поведение происходит случайным образом. Иногда нижний вид прокручивается нормально, и это пустое пространство не отображается. Что я делаю не так? Спасибо.

4b9b3361

Ответ 1

У меня была та же проблема, и я заметил, что каждый макет с этой проблемой имел

android:fitsSystemWindows="true"

on CoordinatorLayout

Извлечение исправлено во всем мире.

Ответ 2

Попробуйте добавить Toolbar внутри yours CollapsingToolbarLayout:

 <android.support.design.widget.CollapsingToolbarLayout>

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:minHeight="?attr/actionBarSize"
                app:layout_collapseMode="pin"/>
...
</android.support.design.widget.CollapsingToolbarLayout>

Также попробуйте добавить

Android: MinHeight = "атр/actionBarSize"

до Toolbar CollapsingToolbarLayout и AppBarLayout

Ответ 3

Для навигационных флагов причины android: fitsSystemWindows = "true" не отвечают моим потребностям.

После некоторых игр я обнаружил, что добавление другого CollapsingToolbarLayout с 0dp hieght делает трюк.

<android.support.design.widget.CollapsingToolbarLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    app:layout_scrollFlags="scroll|snap" />