可访问性阅读将列表视图中的项目显示为列表项 + 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()));
}
});
我正在我的自定义下拉刷新列表视图中实现辅助功能。我的下拉刷新列表视图有一个 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()));
}
});