Я хотел бы, чтобы пользовательское представление свернулось с переходом во время прокрутки.
У меня AppBarLayout
с Toolbar
внутри. Ниже этого есть пользовательское представление, которое я хочу свернуть.
Под пользовательским представлением есть NestedScrollView
с LinearLayout
.
Панель инструментов — зеленая, пользовательский макет — розовый, а прокрутка с линейкой — серая:
После прокрутки вниз:
<android.support.design.widget.CoordinatorLayout 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: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="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<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" />
</android.support.design.widget.AppBarLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="170dp"
android:layout_marginTop="?attr/actionBarSize"
android:background="@drawable/background"
android:gravity="center">
</RelativeLayout>
<ScrollView
android:id="@+id/scroll"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="170dp"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<include
layout="@layout/linear"
android:layout_marginBottom="20dp"
android:layout_marginTop="20dp"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</ScrollView>
</android.support.design.widget.CoordinatorLayout>
Должен ли я использовать собственное поведение и CoordinatorLayout
или перевод с NestedScroll
с анимацией перевода?
CollapsingToolbarLayout
и использовал собственное поведение. Или вы можете использоватьOnOffsetChangedListener
изAppBarLayout
для этого перехода. - person romtsn   schedule 01.07.2017CollapsingToolbarLayout
? - person pixel   schedule 02.07.2017RelativeLayout
, что и сейчас. Просто поместите этотRelativeLayout
внутрьCollapsingToolbarLayout
. - person romtsn   schedule 02.07.2017CollapsingToolbarLayout
предназначен для использования внутриAppBarLayout
- person pixel   schedule 02.07.2017AppBarLayout
. Вы можете вытащить его изAppBarLayout
и поместить сразу послеAppBarLayout
в свой xml. Таким образом, вашAppBarLayout
будет содержать толькоCollapsingToolbarLayout
с вашим пользовательским представлением внутри. Проверьте мой ответ stackoverflow.com/a/44647978/3225458, это не совсем то, чего вы хотите достичь, но вы можете понять хотя бы структуру xml из него. - person romtsn   schedule 03.07.2017Toolbar
в дополнительныеAppBarLayout
- person pixel   schedule 03.07.2017