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

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

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

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

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

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

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

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


comment
вы нашли какие-либо решения для этого?   -  person goonerDroid    schedule 15.10.2015
comment
@goonerDroid, я этого не делал. В конце концов я перестал пользоваться библиотекой Google.   -  person user4386126    schedule 26.10.2015
comment
Я чувствую, что это предполагаемое поведение макета координатора. Хотя не уверен.   -  person goonerDroid    schedule 03.11.2015
comment
@goonerDroid Нет, WhatsApp не оставляет пустой патч внизу.   -  person Hardip Patel    schedule 24.12.2015
comment
Кажется, работает, чтобы обернуть пейджер представления в линейный макет, чтобы придать ему серьезность в аналогичной проблеме.   -  person sivi    schedule 27.03.2016


Ответы (3)


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

android:fitsSystemWindows="true"

на координатореLayout

Удаление его устранило мою проблему везде.

person Apperside    schedule 15.01.2016
comment
Хорошо, теперь работает. Я использовал RecyclerView вместо ViewPager, я только что сделал match_parent. Теперь это работает. - person Jimit Patel; 25.10.2016
comment
это сработало. я удалил эту строку из AppBarLayout и CollapsingToolbarLayout, и теперь она работает - person Amir Ziarati; 03.05.2018

Попробуйте добавить Toolbar внутрь вашего 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="?attr/actionBarSize"

до Toolbar CollapsingToolbarLayout и AppBarLayout

person mohax    schedule 22.09.2015

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

Поиграв немного, я обнаружил, что добавление еще одного CollapsingToolbarLayout с высотой 0dp делает свое дело.

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