Я хочу достичь 3 состояний.
Когда позиция прокрутки равна 9, то для отображения полного содержания 500 dp.Сделано это с EnterAlways.
Когда я прокручиваю вниз, я хочу свернуть панель приложения до минимальной высоты.Который я получаю с minheight 88 и exitUntillCollapsed.
Когда где-то в середине экрана я прокручиваю вверх, я хочу расширить минимальную область с дополнительными 40dp, чтобы было видно 128dip.Здесь я собрал все, и единственная идея, которая у меня есть, - добавить слушателя на панель приложений и программно увеличить minheight до 128.
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/app_bar"
android:layout_width="match_parent"
android:layout_height="500dip"
android:theme="@style/AppTheme.AppBarOverlay">
<com.google.androidstudio.motionlayoutexample.utils.CollapsibleToolbar xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/motionLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#1e376b"
android:minHeight="88dip"
app:layoutDescription="@xml/motion"
app:layout_scrollFlags="scroll|enterAlways|snap|exitUntilCollapsed">
<Button
android:id="@+id/m_button"
android:layout_width="60dip"
android:layout_height="40dip" />
</com.google.androidstudio.motionlayoutexample.utils.CollapsibleToolbar>
</com.google.android.material.appbar.AppBarLayout>
<androidx.core.widget.NestedScrollView xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/scrollable"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="@dimen/text_margin"
android:text="1\n2\n\3\n4\n5\n6\n7\n8\n\9\n10\n11\n12\n13\n\14\n1\n2\n\3\n4\n5\n6\n7\n8\n\9\n10\n11\n12\n13\n\14" />
</androidx.core.widget.NestedScrollView>
</androidx.coordinatorlayout.widget.CoordinatorLayout>