辅助功能读取,将列表视图中的项目显示为列表项+标题视图 [英] Accessibility reading showing items in a listview as list item + header view

查看:100
本文介绍了辅助功能读取,将列表视图中的项目显示为列表项+标题视图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在我的自定义拉取中实现可访问性以刷新列表视图.我的刷新列表"视图有一个标题视图,可在下拉时显示更新状态.如果我的列表仅包含5个项目,则Talkback会将其读取为显示6个项目中的第1个",而不是显示5个项目中的第1个".我认为将总数视为列表项+标题视图(即5项+ 1个标题视图).

I am implementing accessibility in my custom pull to refresh list view. My pull to refresh list view has a header view to show the updating status while pull down. If my list contains only 5 items, Talkback reads it as "showing item 1 of 6" instead of "showing item 1 of 5". I think it took total count as list items + header views (ie, 5 items + 1 header view).

我要从中删除标题视图计数.

I want to remove the header view count from this.

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

I have tried headerView.setImportantForAccessibility(IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS); but it doesn't work for me.

推荐答案

尝试一下:

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

这篇关于辅助功能读取,将列表视图中的项目显示为列表项+标题视图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆