ScrollView中的Horizo​​ntal RecyclerView:垂直滚动时如何获得焦点?

Posted

技术标签:

【中文标题】ScrollView中的Horizo​​ntal RecyclerView:垂直滚动时如何获得焦点?【英文标题】:Horizontal RecyclerView inside ScrollView: how to get focus when vertical scrolling? 【发布时间】:2016-12-01 08:19:00 【问题描述】:

我有一个带有多个水平 RecyclerView 的 ScrollView。问题是这样的: 当我垂直滚动以导航到我的应用程序并触摸 recyclerview 以水平滚动时,焦点仍然在滚动视图上,我无法水平滚动。我必须松开手指并再次触摸才能垂直滚动。 我想给recyclerview分配权限,这样我就可以在不停止垂直滚动的情况下水平滚动。

我尝试了多种解决方案:

编辑recyclerview及其容器的xml中的一些参数(focusable、focusableintouchmode、descendantFocusability、nestedscrollingenabled) 在scrollview 和recyclerview 中添加ontouchlistener 并拦截motionevent 使用 ScrollView 和 NestedScrollview 以及同时使用 RecyclerView 和 ListView 都存在此问题

感谢您的帮助

【问题讨论】:

对 VerticalScrolling 使用 RecyclerView 而不是 Scrollview。它会解决你的问题。 【参考方案1】:

这个问题是因为 recyclerView 有默认焦点。 只需添加此

android:descendantFocusability="blocksDescendants"

滚动视图的直接布局。

【讨论】:

以上是关于ScrollView中的Horizo​​ntal RecyclerView:垂直滚动时如何获得焦点?的主要内容,如果未能解决你的问题,请参考以下文章

FragmentTabHost Horizo​​ntal Scrollview + Swipe Android

SwiftUI Horizo​​ntal ScrollView 项目在 iOS 14.3 中滚动时变得不可见,但在 iOS 13 中工作正常

Vertical RecyclerView 中的 Horizo​​ntal RecyclerViews 丢失位置/状态

如何使Horizo​​ntal Recyclerview无限滚动而不滚动回第一项

如何在 gke 中将 kube-controller-manager 中的 --horizo​​ntal-pod-autoscaler-sync-period 字段更改为 5sec

HTML jQuery Horizo​​ntal Accordion