У меня есть следующая раскладка:
<android.support.design.widget.CoordinatorLayout
android:id="@+id/rootLayout"
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.support.design.widget.CollapsingToolbarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_scrollFlags="scroll|exitUntilCollapsed|snap">
<ImageView
android:layout_width="match_parent"
android:layout_height="160dp"
app:layout_collapseMode="parallax" />
<android.support.v7.widget.Toolbar
android:layout_width="match_parent"
android:layout_height="52dp"
app:layout_collapseMode="pin" />
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.v4.widget.NestedScrollView
android:id="@+id/nestedScrollView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
app:layout_behavior="com.example.CardViewBehavior">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<FrameLayout
android:id="@+id/fixedBanner"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</FrameLayout>
<FrameLayout
android:id="@+id/card1"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<!-- random content -->
</FrameLayout>
<FrameLayout
android:id="@+id/card2"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</FrameLayout>
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
</layout>
При прокрутке вниз (палец вверх) от fixedBanner
или card1
сначала сворачивается appBarLayout
, затем прокручивается nestedScrollView
вниз.Однако, если прокрутить вниз с recyclerView
, recyclerView
начнет прокрутку.Я хочу, чтобы nestedScrollView
сначала прокрутил вниз, прежде чем recyclerView
.
Я попытался использовать пользовательский CardViewBehavior
, установленный на nestedScrollView
, который переопределяет onNestedPreScroll, чтобы использовать дельты прокрутки, если appBarLayout
не полностью свернут иесть еще диапазон для прокрутки nestedScrollView
.
Однако, если я проведу достаточно быстро на recyclerView
, recyclerView
начнет мигать до того, как nestedScrollView
полностью прокрутится до дна.Я попытался переопределить onNestedPreFling
и onNestedFling
в CardViewBehavior
, но кажется, что эти два метода никогда не вызывались, когда RecyclerView сам начинает сбрасывать.
Как я могу гарантировать, что nestedScrollView
прокручивается до дна до recyclerView
начинает прокручивать?