我有一个Android回收视图,其中有一些更多的项目行。
从某种意义上说,Recyclerview包含以下内容
行1 ->> TextView,下面是另一个文本视图
行2 ->> TextView,下面是另一个文本视图
问题是,每当我打开Talkback时,它会一次性读取整个Recyclerview,这并不是预期的,它应该根据聚焦的项目一次读取一个项目。
预期行为是-当d-pad移动到焦点上时,读取组件。
有什么帮助吗??
发布于 2016-04-11 21:55:14
似乎在构建过程中的某个时刻,您的回收视图被标记为importantForAccessibility。当容器视图被标记为对可访问性重要时,它会收集该容器中的所有信息,并将其声明为内容描述。
这应该会纠正这种情况。
android:importantForAccessibility="no" //Or "auto"如果你在代码中没有设置,这似乎是你的Android风格的一个bug。这肯定不是理想的默认行为。
编辑:
"no“改为"auto”。实际上,我们只希望它不是"yes",这是创造糟糕行为的值。Auto在现代设备上使用开关控制时表现更好。
我断断续续地研究了一下,我不认为这里有Android OS版本不可知的解决方案。Android API已经在太多版本中多次更改了Focusability与Accessibility Focusability的定义。
发布于 2016-05-12 09:23:23
与克里斯CM的答案相反,你不应该设置...
android:importantForAccessibility="no"..。在你的RecyclerView上。这将禁用与您的列表相关的所有本机辅助功能功能,包括ACTION_SCROLL_FORWARD / ACTION_SCROLL_BACKWARD操作(Accessibility Source),以及将"In list“/ "Out List”上下文附加到可访问性声明的能力。
相反,您应该设置...
android:focusable="true"
android:focusableInTouchMode="true"...on您的列表项的根布局,这将使它们在辅助功能用户导航到列表项时能够单独获得焦点。
https://stackoverflow.com/questions/36493514
复制相似问题