如何使 appbarlayout 中的布局可滚动?

问题描述

我在 appbar 内有一个 500dp 的图像视图(或者你可以说 appbarlayout 内的布局覆盖区域为 500dp)。 下面我有一个 recyclerview 显示一些项目(在折叠工具栏外)。在较小的设备上,appbar 覆盖整个屏幕,因此我无法正确滚动。我可以知道一种通过触摸应用栏布局/图像视图向下滚动以显示 recyclerview 的方法吗?

    <androidx.coordinatorlayout.widget.CoordinatorLayout
            android:id="@+id/coordinatorLayout2"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@color/view_background_dark"
            android:fitsSystemWindows="true">

            <com.google.android.material.appbar.AppBarLayout
                android:id="@+id/app_bar"
                android:layout_width="match_parent"
                android:layout_height="wrap_content">

               <com.multilinecollapsingtoolbar.CollapsingToolbarLayout
                    android:id="@+id/toolbar_layout"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:background="@color/view_background_dark"
                    app:collapsedTitleGravity="left"
                    app:collapsedTitleTextAppearance="@style/Toolbar.CollapsedTitleText"
                    app:contentScrim="@color/view_background_dark"
                    app:defaultParallaxMultiplier="0.75"
                    app:expandedTitleGravity="center_horizontal|bottom"
                    app:expandedTitleMarginBottom="120dp"
                    app:expandedTitleTextAppearance="@style/Toolbar.TitleText"
                    app:layout_scrollFlags="scroll|exitUntilCollapsed"
                    app:maxLines="2"
                    app:toolbarId="@+id/toolbar1">

                     <ImageView
                        android:id="@+id/player_min_max_btn"
                        android:layout_width="match_parent"
                        android:layout_height="500dp"
                        android:layout_gravity="right"
                        android:layout_marginTop="30dp"
                        android:layout_marginRight="@dimen/page_left_right_margin_half"
                        app:layout_collapseMode="parallax"
                        />
 </com.multilinecollapsingtoolbar.CollapsingToolbarLayout>
 </com.google.android.material.appbar.AppBarLayout>
 <androidx.recyclerview.widget.RecyclerView
                android:id="@+id/rv_next_in_queue"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@+id/rl_queue_header"
                android:background="@color/view_background_dark"
      app:layout_behavior="com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>

解决方法

将两个布局都包含在 NestedScrollView 中,就像这样。

 <androidx.core.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

            <com.google.android.material.appbar.AppBarLayout
             <!-- AppBar code-->
            </com.google.android.material.appbar.AppBarLayout>
            <androidx.recyclerview.widget.RecyclerView
             <!-- Recyclerview Code-->
             </androidx.recyclerview.widget.RecyclerView>
   
</androidx.core.widget.NestedScrollView>