如何将可访问性的重点转移到RecyclerView的第一个动作上?

Dha*_*mja 6 android accessibility talkback android-recyclerview android-accessibility

我是Android辅助功能的新手- TalkBack。我知道诸如之类的基本内容contentDescriptionimportantForAaccessibility以及它们如何构成节点树等。

在我的问题中,我想将可访问性的重点转移RecyclerView到某些操作上的第一个元素上。

通常someView.requestFocus()还是someView.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED)可以的。但这似乎并没有按预期工作RecyclerView

我试图通过以下方法解决它:

  1. android:accessibilityLiveRegion="polite"但它只会宣布该列表在那里。但这并不会影响可访问性。

  2. 通过集中适配器的第一个元素-这样做是一个坏主意!

除此之外,android:accessibilityTraversalAfter并且android:accessibilityTraversalBefore也不能很好地与Android的列表视图工作。

someView.requestFocus()
someView.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED)
Run Code Online (Sandbox Code Playgroud)

Dha*_*mja 6

RecyclerView 的getChildAt()方法对我有用。

recyclerView.getChildAt(0).requestFocus()
recyclerView.getChildAt(0).sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED)
Run Code Online (Sandbox Code Playgroud)