【问题标题】:Recycler View not overscrolling when used with CollapsingToolbarLayout与 CollapsingToolbarLayout 一起使用时,Recycler View 不会过度滚动
【发布时间】:2020-06-04 06:23:44
【问题描述】:

我有以下带有可折叠工具栏布局和回收器视图的布局。不知何故,它不允许 recyclerview 过度滚动。我怎样才能做到这一点?谢谢!

<com.google.android.material.appbar.CollapsingToolbarLayout
        android:id="@+id/collapsing_toolbar_layout"
        android:layout_width="match_parent"
        app:layout_scrollFlags="scroll|exitUntilCollapsed">


        <androidx.appcompat.widget.Toolbar
            android:id="@+id/toolbar"
            style="@style/ToolbarStyle"
            android:layout_width="match_parent"
            android:layout_height="?android:attr/actionBarSize">
    </com.google.android.material.appbar.CollapsingToolbarLayout>

</com.google.android.material.appbar.AppBarLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    app:layout_behavior="@string/appbar_scrolling_view_behavior">

    <View
        android:id="@+id/view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/recycler_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:clipToPadding="false"/>

</LinearLayout>

【问题讨论】:

  • 你使用什么版本的 Material Design Components 和 RecyclerView?
  • androidx.recyclerview:recyclerview:1.0.0 & com.google.android.material:material:1.0.0

标签: android android-recyclerview android-collapsingtoolbarlayout overscroll


【解决方案1】:

CoordinatorLayout 1.1.0(Material 1.1.0 的基础)和RecyclerView 1.1.0 的很大一部分正在迁移到新的嵌套滚动 API,这些 API 专门用于解决过度滚动不会在视图之间传输的情况正确。

您应该升级到 Material 1.1.0 和 RecyclerView 1.1.0。

【讨论】:

    【解决方案2】:

    试试这个,我目前正在应用中使用

    <com.google.android.material.appbar.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:fitsSystemWindows="true"
        android:theme="@style/AppTheme.AppBarOverlay">
    
        <com.google.android.material.appbar.CollapsingToolbarLayout
            android:id="@+id/collapsing_toolbar_layout"
            android:layout_width="match_parent"
            android:layout_height="220dp"
            app:layout_scrollFlags="scroll|exitUntilCollapsed">
    
            <androidx.appcompat.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?android:attr/actionBarSize" />
    
        </com.google.android.material.appbar.CollapsingToolbarLayout>
    
    </com.google.android.material.appbar.AppBarLayout>
    

    我想你只是忘记了这部分:

    app:layout_scrollFlags="scroll|exitUntilCollapsed"
    

    【讨论】:

    • 嘿弗朗西斯科,刚刚用标志试了一下。结果还是一样。它不允许顶部过度滚动。
    • 好的,我正在检查我的 ode 并且非常相似,唯一的区别是我使用的是 ConstraintLayout 而不是 LinearLayout,并检查此视图,您使用的是 android:layout_height="match_parent"
    • 它是否允许顶部滚动?
    猜你喜欢
    • 2018-02-11
    • 2016-03-22
    • 2012-05-30
    • 1970-01-01
    • 1970-01-01
    • 2021-11-06
    • 1970-01-01
    • 2016-07-02
    • 2023-03-27
    相关资源
    最近更新 更多