Android 滚动查看子项和可访问性

Android 滚动查看子项和可访问性,android,android-layout,accessibility,android-scrollview,android-accessibility,Android,Android Layout,Accessibility,Android Scrollview,Android Accessibility,我正在开发一个日历应用程序,我想让视障用户可以访问它。CalendarScreen有一个ScrollView,它有一个子项DayViewGroup,它包含并布局EventView。对于每个EventView,我设置contentDescription。一切都是通过编程方式创建和添加的 使用TalkBack时,目的是让用户能够浏览一整天的EventView并听到contentDescription。我发现,我只能浏览ScrollView当前显示的事件视图或稍微脱离屏幕的事件视图 我的假设是Scro

我正在开发一个日历应用程序,我想让视障用户可以访问它。CalendarScreen有一个ScrollView,它有一个子项DayViewGroup,它包含并布局EventView。对于每个EventView,我设置contentDescription。一切都是通过编程方式创建和添加的

使用TalkBack时,目的是让用户能够浏览一整天的EventView并听到contentDescription。我发现,我只能浏览ScrollView当前显示的事件视图或稍微脱离屏幕的事件视图

我的假设是ScrollView正在进行一些优化,只渲染屏幕的相关部分,或者从ViewHierarchy中删除未显示的EventView,或者使其不可见。不管怎样,结果是它们被隐藏起来,无法进行对讲和访问

我想我将覆盖DayViewGroup中的getAccessibilityNodeProvider,并让它在那里提供信息

  • CalendarScreen的一个重要功能是,用户可以单击事件并了解更多信息。我想知道我是否能够将对讲点击授权给VirtualNodeProvider
  • 有更简单的解决方案吗?也许关闭ScrollView的优化,或者告诉每个EventView它对可访问性很重要

谢谢

这不是真正的
ScrollView
功能。屏幕外的列表行只有在用户界面对象滚入后才会呈现
RecyclerView
具有相同的行为,只是它“回收”了上下滚动的视图,并将其替换为进入屏幕的新视图。但同样由于对讲的问题,你不能聚焦一个没有显示的UI对象。我对NestedScrollview和对讲也有类似的问题。伊恩,你能解决这个问题吗