¿Cómo deshabilitar el desplazamiento de NestedScrollView & CollapsingToolbarLayout, por ejemplo cuando no hay más contenido a continuación?

Antecedentes

Intento agregar la misma funcionalidad que se muestra en muchas aplicaciones, donde el área superior de la pantalla se reduce y se expande de acuerdo con el contenido desplazado.

Para esto, uso la biblioteca de diseño de Google, como se muestra enla muestra CheeseSquare.

El problema

La cuestión es que, sin importar cuánto contenido haya en NestedScrollView, me permite desplazarme mucho más abajo de la última vista del contenido, solo para permitirme ver el estado final de la barra de acción, que tiene el tamaño mínimo de sí mismo.

En resumen, esto es lo que veo cuando me desplazo hacia abajo (contenido modificado de la muestra CheeseSquare):

Si bien esto es lo que me gustaría tener al desplazarme hacia abajo (tomado de la aplicación de contactos):

También estoy tratando de corregir un error enThreePhasesBottomSheet muestra que es posible desplazarse en el contenido de la hoja inferior incluso cuando está en estado de visualización. Para reproducir, comience a desplazarse horizontalmente (que no hace nada, ya que no hay nada que desplazarse de esta manera) y luego verticalmente, lo que de alguna manera desencadenaría el desplazamiento del contenido de la hoja inferior.

Por lo tanto, necesito deshabilitar el desplazamiento en el método "transformView ()", en el caso de que "traducción

Así es como funciona usando el uso normal:

Y así es como se comporta con el error de no bloquear el desplazamiento:

Lo que he intentado

He intentado jugar con el "layout_scrollFlags", para cambiar la altura a wrap_content y eliminar los atributos clipToPadding y fitsSystemWindows.

Aquí está el archivo XML de muestra, que he modificado para incluir solo un cardView en lugar de muchos:

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/main_content"
    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="@dimen/detail_backdrop_height"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        android:fitsSystemWindows="true">

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/collapsing_toolbar"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_scrollFlags="scroll|exitUntilCollapsed"
            android:fitsSystemWindows="true"
            app:contentScrim="?attr/colorPrimary"
            app:expandedTitleMarginStart="48dp"
            app:expandedTitleMarginEnd="64dp">

            <ImageView
                android:id="@+id/backdrop"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:scaleType="centerCrop"
                android:fitsSystemWindows="true"
                app:layout_collapseMode="parallax" />

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
                app:layout_collapseMode="pin" />

        </android.support.design.widget.CollapsingToolbarLayout>

    </android.support.design.widget.AppBarLayout>

    <android.support.v4.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:paddingTop="24dp">

            <android.support.v7.widget.CardView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_margin="@dimen/card_margin">

                <LinearLayout
                    style="@style/Widget.CardContent"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content">

                    <TextView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:text="Info"
                        android:textAppearance="@style/TextAppearance.AppCompat.Title" />

                    <TextView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:text="@string/cheese_ipsum" />

                </LinearLayout>

            </android.support.v7.widget.CardView>

        </LinearLayout>

    </android.support.v4.widget.NestedScrollView>

    <android.support.design.widget.FloatingActionButton
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        app:layout_anchor="@id/appbar"
        app:layout_anchorGravity="bottom|right|end"
        android:src="@drawable/ic_discuss"
        android:layout_margin="@dimen/fab_margin"
        android:clickable="true"/>

</android.support.design.widget.CoordinatorLayout>

También probé el siguiente código:

((AppBarLayout.LayoutParams) collapsingToolbar.getLayoutParams()).setScrollFlags(0);

pero esto todavía permitió el desplazamiento de NestedScrollView en sí mismo en elQueso Cuadrado ejemplo, y también permitió lanzar en elThreePhasesBottomSheet muestra

Las preguntas

¿Qué puedo hacer para detener el desplazamiento cuando no hay más contenido para mostrar en la parte inferior?

Además, ¿qué se puede hacer para desactivar el desplazamiento de NestedScrollView en cualquier momento que desee (para elThreePhasesBottomSheet muestra) ¿Algo así como "setEnableScrolling (...)"?

Traté de extender NestedScrollView y también de ScrollingViewBehavior, pero no pude encontrar qué se puede hacer para deshabilitar el desplazamiento.

Probablemente sea algo muy simple de cambiar, pero no puedo descubrir qué ...

EDITAR: si es necesario, esto es lo que uso actualmente para la biblioteca de diseño y soporte

compile 'com.android.support:appcompat-v7:23.1.0'
compile 'com.android.support:design:23.1.0'

EDITAR: para el n. ° 2, he encontrado una solución dentro del archivo BottomSheetLayout.java, para deshabilitar todo lo relacionado con la variable "sheetViewOwnsTouch", como si siempre estuviera configurado como "falso". Esto permitirá robar eventos táctiles en la hoja inferior. Sin embargo, esto es solo una solución, y solo para este caso. También provoca algunos eventos táctiles que deberían haber sido manejados por otras vistas. Todavía deseo saber cómo bloquear el desplazamiento mediante programación, y también en el otro caso de suficiente espacio para mostrar el contenido.

Respuestas a la pregunta(2)

Su respuesta a la pregunta