Android Recyclerview 反馈问题
Android Recyclerview Talkback issue
我有一个 Android Recyclerview,它有更多行项目。
在某种意义上
Recyclerview 包括
第 1 行 ->> TextView,在另一个 textview 下面
第 2 行 ->> TextView,在那个下方还有一个 textview
问题是,每当我打开 Talkback 时,它会一次性读出整个 Recyclerview,这不是预期的,它应该根据焦点项目一次读取一个项目。
预期的行为是 - 当方向键移到焦点上时读取焦点上的组件。
有帮助吗??
在构建过程的某个时刻,您的 Recycler View 似乎被标记为 importantForAccessibility。当容器视图被标记为对可访问性很重要时,它会收集该容器内的所有信息并将其作为内容描述公布。
这应该可以解决这个问题。
android:importantForAccessibility="no" //Or "auto"
如果您在代码中没有任何其他设置,这似乎是您 Android 风格的错误。这当然不是理想的默认行为。
编辑:
已将 "no" 更改为 "auto"。实际上,我们只是希望它不是 "yes",这是造成不良行为的价值。 Auto 在现代设备上使用 Switch Control 时表现更好。
断断续续地对此进行了一段时间的调查,我认为这里没有 Android OS 版本不可知的解决方案。 Android API 已经在太多版本中多次更改了 Focusability 与 Accessibility Focusability 的定义。
与 ChrisCM 的回答相反,您不应设置...
android:importantForAccessibility="no"
... 在你的 RecyclerView
上。这将 禁用与您的列表相关的所有本机可访问性 功能,包括 ACTION_SCROLL_FORWARD
/ ACTION_SCROLL_BACKWARD
操作 (Accessibility Source),以及附加 "In List" / "Out of List" 可访问性公告的上下文。
相反,您应该设置...
android:focusable="true"
android:focusableInTouchMode="true"
...在您的列表项的根布局上,这将使它们能够在可访问性用户导航到它们时单独获得焦点。
我有一个 Android Recyclerview,它有更多行项目。
在某种意义上
Recyclerview 包括
第 1 行 ->> TextView,在另一个 textview 下面
第 2 行 ->> TextView,在那个下方还有一个 textview
问题是,每当我打开 Talkback 时,它会一次性读出整个 Recyclerview,这不是预期的,它应该根据焦点项目一次读取一个项目。
预期的行为是 - 当方向键移到焦点上时读取焦点上的组件。
有帮助吗??
在构建过程的某个时刻,您的 Recycler View 似乎被标记为 importantForAccessibility。当容器视图被标记为对可访问性很重要时,它会收集该容器内的所有信息并将其作为内容描述公布。
这应该可以解决这个问题。
android:importantForAccessibility="no" //Or "auto"
如果您在代码中没有任何其他设置,这似乎是您 Android 风格的错误。这当然不是理想的默认行为。
编辑:
已将 "no" 更改为 "auto"。实际上,我们只是希望它不是 "yes",这是造成不良行为的价值。 Auto 在现代设备上使用 Switch Control 时表现更好。
断断续续地对此进行了一段时间的调查,我认为这里没有 Android OS 版本不可知的解决方案。 Android API 已经在太多版本中多次更改了 Focusability 与 Accessibility Focusability 的定义。
与 ChrisCM 的回答相反,您不应设置...
android:importantForAccessibility="no"
... 在你的 RecyclerView
上。这将 禁用与您的列表相关的所有本机可访问性 功能,包括 ACTION_SCROLL_FORWARD
/ ACTION_SCROLL_BACKWARD
操作 (Accessibility Source),以及附加 "In List" / "Out of List" 可访问性公告的上下文。
相反,您应该设置...
android:focusable="true"
android:focusableInTouchMode="true"
...在您的列表项的根布局上,这将使它们能够在可访问性用户导航到它们时单独获得焦点。