可访问性阅读将列表视图中的项目显示为列表项 + header 视图

Accessibility reading showing items in a listview as list item + header view

我正在我的自定义下拉刷新列表视图中实现辅助功能。我的下拉刷新列表视图有一个 header 视图,用于在下拉时显示更新状态。如果我的列表仅包含 5 个项目,Talkback 会将其读取为 "showing item 1 of 6" 而不是 "showing item 1 of 5"。我认为总计数为列表项 + header 视图(即 5 项 + 1 header 视图)。

我想从中删除 header 观看次数。

我试过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()));
        }
    });