Hier ist mein Layout hierarquyAndroid AppBarLayout + CollapsingToolbarLayout + CoordinatorLayout
<android.support.design.widget.CoordinatorLayout
android:id="@+id/coordinatorLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:id="@+id/appBarLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clipChildren="false"
android:clipToPadding="false"
android:theme="@style/AppThemeAppBarOverlay"
app:elevation="0dp">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar_layout"
contentScrim="@color/transparent"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipChildren="false"
android:clipToPadding="false"
app:contentScrim="@color/transparent"
app:layout_scrollFlags="scroll|enterAlways">
<LinearLayout
android:id="@+id/openday_parent"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipChildren="false"
android:clipToPadding="false"
android:orientation="vertical"
android:paddingTop="?attr/actionBarSize"
app:layout_collapseMode="parallax"
app:layout_collapseParallaxMultiplier="1">
...</LinearLayout>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:clipChildren="false"
android:clipToPadding="false"
app:layout_collapseMode="pin"
app:layout_scrollFlags="snap|exitUntilCollapsed"
app:popupTheme="@style/AppThemePopupOverlay" />
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="@dimen/card_view_margin_bt"
android:background="@color/windowBackground"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:listitem="@layout/card_item" />
</android.support.design.widget.CoordinatorLayout>
<include layout="@layout/navigation_view" />
Ich habe zwei Probleme:
Wenn die appbarLayout erweitert, und ich durchführen Ein schneller Bildlauf Nach oben in der RecyclerView scrollt der RecyclerView wirklich schnell ein Gleichzeitig beginnt die kollabierende Symbolleiste zu kollabieren. Dies sollte nicht passieren. Ich möchte Scroll nur in der RecyclerView zulassen, wenn das CollapsingLayout vollständig ausgeblendet ist. Ich denke, das Problem hat mit dem RecyclerView-Fling zu tun, denn wenn ich langsam scrolle, tritt dieser Fehler nicht auf. Ich versuche, einen Workaround dafür zu finden.
Die zweite Sache ist, wenn die Aktivität beginnt, wird die Appbar erweitert. ich will es kollabiert beginnen, die mit
appBarLayout.setExpanded (false, true)
Aber mit dieser Ansatz funktioniert, wird die Symbolleiste auch zusammenbrach. Ich möchte nur den appBarLayout-Header, aber nicht die Symbolleiste minimieren.