CoordinatorLayout оставляет пустое место внизу после прокрутки
Я пытаюсь реализовать новейшие трюки дизайна Google с CoordinatorLayout, и у меня проблемы с прокруткой и эффектом параллакса.
После отображения Activity все выглядит нормально, но проблема возникает при попытке прокрутки. Кажется, что нижний вид не раскрывается правильно, и после прокрутки вверх появляется пустое пространство. Вид снизу кажется большим, только то, сколько он имеет на начальном экране между верхним видом и панелью навигации.
Это выглядит примерно так:
Соответствующий код:
<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>
Это странное поведение происходит случайно. Иногда вид снизу можно прокручивать как обычно, и это пустое место не появляется. Что я делаю неправильно? Благодарю.
3 ответа
У меня была такая же проблема, и я заметил, что каждый макет с этой проблемой
android:fitsSystemWindows="true"
на CoordinatorLayout
Удаление это решило мою проблему везде.
Попробуй добавить 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>
Также попробуйте добавить
андроид: MinHeight="атр /actionBarSize"
в Toolbar
CollapsingToolbarLayout
а также AppBarLayout
По причинам навигационных флагов 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" />