android - 可访问性阅读将 ListView 中的项目显示为列表项 + 标题 View

标签 android listview accessibility

我在我的自定义下拉刷新 ListView 中实现了辅助功能。我的下拉刷新 ListView 有一个标题 View ,可以在下拉时显示更新状态。如果我的列表仅包含 5 个项目,Talkback 会将其读作“显示第 1 个项目,共 6 个”,而不是“显示第 1 个项目,共 5 个项目”。我认为总计数为列表项 + 标题 View (即 5 个项目 + 1 个标题 View )。

我想从中删除标题 View 计数。

我已经尝试过 headerView.setImportantForAccessibility(IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS); 但它对我不起作用。

最佳答案

试试这个:

mListView.setAccessibilityDelegate(new View.AccessibilityDelegate(){
        @Override
        public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) {
            super.onInitializeAccessibilityNodeInfo(host, info);
            AccessibilityNodeInfo.CollectionInfo old = info.getCollectionInfo();
            info.setCollectionInfo(AccessibilityNodeInfo.CollectionInfo.obtain(
                    old.getRowCount() - mListView.getHeaderViewsCount() - mListView.getFooterViewsCount(),
                    old.getColumnCount(),
                    old.isHierarchical(),
                    old.getSelectionMode()));
        }
    });

关于android - 可访问性阅读将 ListView 中的项目显示为列表项 + 标题 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35079056/

相关文章:

java - AsyncTask 取消后正在发布进度

java - Android 应用程序出错

android - 根据是否通过触摸输入按下按钮来应用事件

android - 使用对讲辅助功能模式在滑动时阅读 viewpager 中的 fragment 内容

java - 使用 HTTPClient 在 android 中发送 HTTPS post 请求以获得未验证的证书

android - 简单的 Sqlite 助手

wpf - ListView 中的多重绑定(bind)

android - RecyclerView 在打开软键盘时隐藏操作栏

ios - ListView 到uiwebview?

ios - 如何在 Swift 中使用 VoiceOver 更改选择可拖动单元格的行为?