当nestedscrollview 中的recyclerview 滚动时,对讲焦点转到工具栏项
Posted
技术标签:
【中文标题】当nestedscrollview 中的recyclerview 滚动时,对讲焦点转到工具栏项【英文标题】:Talkback focus goes to toolbar items when recyclerview within nestedscrollview is scrolled 【发布时间】:2020-08-18 19:15:00 【问题描述】:我的布局中有一个嵌套滚动视图,其中包含少量文本、按钮和回收视图。
当对讲开启时,我可以遍历所有元素。但我面临一个问题。当我的水平 recyclerview 滚动然后我滑动以听到对讲时,焦点将移动到工具栏的第一项。然后我需要遍历所有可见项目以到达水平滚动视图滚动项目。
这个问题只出现在nestedscrollview 中的recyclerviews。
我在布局中的nestedscrollview是这样添加的:
<androidx.core.widget.NestedScrollView
android:layout_
android:layout_>
//my contents
</androidx.core.widget.NestedScrollView>
我在布局中的recyclerview是这样添加的:
<LinearLayout
android:id="@+id/photosLL"
android:layout_
android:layout_
android:orientation="vertical">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/photosRV"
android:layout_
android:layout_
tools:listitem="@layout/list_item_photo" />
</LinearLayout>
这是预期的行为,或者如果它是一个问题,如何解决?
【问题讨论】:
关于此事的任何更新?你检查我的答案了吗? 【参考方案1】:这是我最后提供的第一个链接的引用,我认为这与您的问题有关:
“在触摸模式下,没有焦点,也没有选择。用户进入触摸模式后,网格列表中的任何选定项目都将变为未选中。同样,当用户进入触摸模式时,任何有焦点的小部件都将变为未选中。”
我认为你需要在你的 recyclerView 上设置这些属性:
android:focusableInTouchMode="true"
android:descendantFocusability="beforeDescendants"
如果您正在寻找更多信息,请阅读:
Difference between focusable and focusableInTouchMode
和
explain descendantFocusability = afterDescendants
【讨论】:
第一次成功。但随后来回移动是跳过我的回收站视图中的第一个和最后一个元素。有什么线索吗? 你能解释一下吗?视图是否重新创建?如果不是,则不应从顶部重复。它保存了最后一个焦点视图。 我有一个标题“画廊”,在 recyclerview 内的那组图像下方。在 recyclerview 下面我有其他文本视图。当对讲打开时,向前滑动时,首先焦点转到图库,然后是每个图像视图,然后是文本视图。但是从 textview 回到 imageviews 并不会关注最后一张图像。焦点将转到倒数第二张图像。再次向后滑动会遍历后面的图像,当我到达第二张图像然后向后移动时,焦点将转到“图库”标题。以上是关于当nestedscrollview 中的recyclerview 滚动时,对讲焦点转到工具栏项的主要内容,如果未能解决你的问题,请参考以下文章
NestedScrollView 中的 ListView 无法正确显示
当尝试从带有点击事件的视图滚动时,滚动在 NestedScrollView 中不起作用
Espresso,当 NestedScrollView 或 RecyclerView 在 CoordinatorLayout 中时滚动不起作用
如何禁用 NestedScrollView&CollapsingToolbarLayout 的滚动,例如当下面没有更多内容时?