Background
I am trying to add the same features as in many applications where the top of the screen is compressed and expanded to fit the scroll content.
For this, I use the Google Design Library, as shown in the CheeseSquare sample .
Problem
The thing is, no matter how much content is in the NestedScrollView, it allows you to scroll down below the last view of the content, just so that I can see the final state of the action bar with a minimum size.
In short, this is what I see when scrolling down (the modified contents of the CheeseSquare sample):

although this is what I would like to have when scrolling down (taken from the contact application):

I am also trying to fix an error in ThreePhasesBottomSheet that allows me to scroll the contents of the bottom sheet even when it is in peek state. To play, start scrolling horizontally (which does nothing, since there is no way to scroll), and then vertically, which somehow will scroll the contents of the bottom sheet.
Therefore, I need to disable scrolling in the transformView () method, in case "translation
Here's how it works using normal use:

And this is how it behaves with the error of not blocking scrolling:

What i tried
I tried playing with the layout_scrollFlags flags to change the height to wrap_content and to remove the clipToPadding and fitsSystemWindows attributes.
Here is an example XML file that I modified to include only one cardView instead of many:
<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>
I also tried the following code:
((AppBarLayout.LayoutParams) collapsingToolbar.getLayoutParams()).setScrollFlags(0);
but it still allowed scrolling of the NestedScrollView itself in the CheeseSquare example, and was also allowed to go to ThreePhasesBottomSheet .
Questions
What can I do to stop scrolling when there is no more content to show below?
Also, what can be done to disable NestedScrollView scrolling at any time (for ThreePhasesBottomSheet )? Something like "setEnableScrolling (...)"?
I tried to extend NestedScrollView, and also extend from ScrollingViewBehavior, but could not find what can be done to disable scrolling.
This may be a very simple thing, but I cannot understand that ...
EDIT: if necessary, this is what I am currently using for the design and support library
compile 'com.android.support:appcompat-v7:23.1.0' compile 'com.android.support:design:23.1.0'
EDIT: for # 2, I found a workaround from the BottomSheetLayout.java file to disable everything related to the "sheetViewOwnsTouch" variable, as if it was always set to "false". This will allow the theft of touch events on the bottom sheet. However, this is just a workaround, and only for this case. It also raises some touch events that should have been handled by other views. I still want to know how to program scrolling programmatically, as well as in another case with enough space-for-show content.