ScrollView中的Horizontal RecyclerView:垂直滚动时如何获得焦点?
Posted
技术标签:
【中文标题】ScrollView中的Horizontal 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中的Horizontal RecyclerView:垂直滚动时如何获得焦点?的主要内容,如果未能解决你的问题,请参考以下文章
FragmentTabHost Horizontal Scrollview + Swipe Android
SwiftUI Horizontal ScrollView 项目在 iOS 14.3 中滚动时变得不可见,但在 iOS 13 中工作正常
Vertical RecyclerView 中的 Horizontal RecyclerViews 丢失位置/状态
如何使Horizontal Recyclerview无限滚动而不滚动回第一项
如何在 gke 中将 kube-controller-manager 中的 --horizontal-pod-autoscaler-sync-period 字段更改为 5sec