滚动 android recyclerview 禁止点击屏幕
Posted
技术标签:
【中文标题】滚动 android recyclerview 禁止点击屏幕【英文标题】:Scrolling the android recyclerview inhibits clicking on the screen 【发布时间】:2021-08-13 11:27:22 【问题描述】:我在我的安卓移动应用中遇到了这个问题,我正在使用 kotlin。
在项目的主体中,我有一个通过 RecyclerView 制作的卡片列表,当卡片的数量超过屏幕可以容纳的数量时,垂直滚动正确启用。一旦我垂直滚动列表,操作就完成了,但释放后我不能再点击我的应用程序中的任何地方。 (点击在应用程序之外工作) 这是那段代码的 html:
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
android:id="@+id/itemsswipetorefreshSite"
android:layout_
android:layout_
android:layout_weight="1">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerViewSite"
android:layout_
android:layout_
android:clipToPadding="false"
android:paddingBottom="@dimen/twenty">
</androidx.recyclerview.widget.RecyclerView>
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
这段代码包含在 CoordinatorLayout 中,其中有一个 ConstraintLayout,而 ConstraintLayout 又包含一个包含列表的 LinearLayout。
在应用程序的其他部分或其他组件/片段中不会出现相同的问题,我有其他列表,以完全相同的方式制作,但在这种情况下它们不会产生此错误。
出现错误时(从滚动开始)产生的日志如下:
I/HwViewRootImpl: removeInvalidNode jank list 中的所有节点都超时 W/HiTouch_PressGestureDetector:触摸指针移动很多。 X的移动距离是:7.0,极限是:60Y的移动距离是:61.94568,极限是:60 D/OverScrollerOptimization:投掷时间为 flingTime = 1.9100340578075632 速度 = 1261 D/OverScrollerOptimization:投掷时间为 flingTime = 1.9100340578075632 速度 = 1261
但产生了相同的结果,在相同操作的其他列表中非常相似。
您的每一次帮助都非常宝贵,谢谢!
【问题讨论】:
【参考方案1】:在swipeRefreshlayout
和您的recyclerView
中将layout_height
设置为wrap_content
【讨论】:
感谢您的回复,但不幸的是,这对我的问题没有任何帮助【参考方案2】:[已解决]
也许它可以帮助与我处于相同情况的人:我发现在有问题的列表的适配器文件中我找到了一个
requireActivity (). window.setFlags (WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE, WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE)
它不必在那里,每次我触摸列表时它都会被激活。匆忙复制和粘贴的典型问题。
【讨论】:
以上是关于滚动 android recyclerview 禁止点击屏幕的主要内容,如果未能解决你的问题,请参考以下文章
Android:RecyclerView里面的RecyclerView,滚动到底部
Android10.5 滚动视图(RecyclerView)