Ich habe eine Aktivität mit einem CoordinatorLayout
, AppBarLayout
, CollapsingToolbarLayout
und Toolbar
. Also, im Grunde eine Ansicht, die beim Scrollen eines RecyclerView
kollabiert.Zeige Ansicht, wenn Symbolleiste kollabiert
Was ich tun muss, ist eine benutzerdefinierte Ansicht anzuzeigen, wenn die Ansicht des maximierten Layouts aufgrund von Kollaps ausgeblendet ist.
Das ist mein Layout:
<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="192dp"
android:fitsSystemWindows="true"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
app:contentScrim="#2196F3"
app:expandedTitleMarginBottom="32dp"
app:expandedTitleMarginEnd="64dp"
app:expandedTitleMarginStart="48dp"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<include
android:id="@+id/header"
layout="@layout/header_big_first_screen"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:scaleType="centerCrop"
app:layout_collapseMode="parallax"/>
<android.support.v7.widget.CollapsingToolbarLayout
android:id="@+id/anim_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_collapseMode="pin"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="Hello!"/>
</android.support.v7.widget.CollapsingToolbarLayout>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/categories_recyclerview"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
</android.support.design.widget.CoordinatorLayout>
Am Ende, wenn die Symbolleiste, um das mit dem Element geladen Ansicht erweitert wird gezeigt. Wenn es kollabiert ist, tut es das nicht. Wenn es verschwindet, sollte die TextView
innerhalb Toolbar
angezeigt werden. Derzeit zeigt es die ganze Zeit.
Ich habe in den Ereignissen von CollapsingToolbarLayout
gesucht, um einen Listener hinzuzufügen, wenn es Größe ändert, damit ich überprüfen kann, ob das kleiner als ein Wert ist, und diese Ansicht anzeigen.
Das kann etwas schwierig zu erklären sein, aber ich glaube, ich habe mich klar gemacht. Ich habe gegoogelt und kann niemanden finden, der dasselbe versucht.
Konnten Sie einfach den contentScrim benutzen? – tachyonflux
@karaokyo der setContentScrim und seine Variationen sind nur für Zeichen und Farben, es sei denn, ich vermisse etwas. https://developer.android.com/reference/android/support/design/widget/CollapsingToolbarLayout.html –