首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >BottomSheet中的RecyclerView未按预期工作

BottomSheet中的RecyclerView未按预期工作
EN

Stack Overflow用户
提问于 2019-05-07 05:57:44
回答 5查看 6.9K关注 0票数 3

我在布局中直接使用RecyclerView时遇到了一个问题,那就是底表行为。问题是,当底部工作表展开,内容向下滚动时,当我向上滚动时,它会导致底部工作表开始折叠,而不是RecyclerView首先滚动回到顶部。

这里有一个video来演示这个问题。正如你所看到的,当我向下滚动展开的底部页面时,问题出现了。它立即开始崩溃,而不是“等待”RecyclerView滚动到顶部。

这是我的布局代码

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="utf-8"?>

<androidx.coordinatorlayout.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:id="@+id/scheduleRoot"
    android:layout_height="match_parent"
    tools:context=".schedule.ScheduleFragment">


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/scheduleSheet"
        app:behavior_peekHeight="300dp"
        android:elevation="16dp"
        android:clickable="false"
        android:focusable="false"
        android:background="@drawable/bg_bottom_sheet"
        app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior">

        <androidx.recyclerview.widget.RecyclerView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/scheduleRecyclerView"
            android:clickable="true"
            android:focusable="true"
            android:layout_marginTop="8dp"/>

    </LinearLayout>

</androidx.coordinatorlayout.widget.CoordinatorLayout>

如有任何帮助,我们不胜感激!

EN

回答 5

Stack Overflow用户

发布于 2020-11-30 07:00:26

我刚刚遇到了同样的问题,但我通过将以下代码添加到onCreate来修复它:

代码语言:javascript
运行
复制
androidx.core.view.ViewCompat.setNestedScrollingEnabled(recyclerview, false);
票数 5
EN

Stack Overflow用户

发布于 2020-07-01 17:44:22

您的回收视图项目已覆盖滚动状态,因此生成此错误。您提供的布局没有足够的数据来确定原因。您更改的项目是要检查的唯一视图

票数 0
EN

Stack Overflow用户

发布于 2021-07-16 19:15:50

我也有类似的问题:也许我的问题的解决方案会给你一些想法。我的底部工作表展开到全高,回收器视图在其中;用户拖动时,底部工作表正在折叠,即使回收器视图中的第一个项目还不可见。

所以,我所做的是:

  1. 您可以通过"isDraggable“=true/false
  2. 为回收器视图添加OnScrollListener启用/禁用底部页面拖动。
  3. 覆盖onScrolled并检查其中的layoutManager.findFirstVisibleItemPosition()如果第一项可见-更新底部页面behavior.isDraggable = true,我还在设置behavior.isDraggable =true之前添加了小延迟,因为底部页面折叠太快,但您可能不需要它

<代码>G29

也许它不是最优的,但它满足了我的需求,也许会对你有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56012918

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档