Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android对讲可访问性-附加到内容描述末尾_Android_Accessibility_Talkback - Fatal编程技术网

Android对讲可访问性-附加到内容描述末尾

Android对讲可访问性-附加到内容描述末尾,android,accessibility,talkback,Android,Accessibility,Talkback,是否可以在布局的末尾附加要读取的内容?设置根视图的内容描述将覆盖所有内容,然后不会读取子视图。此外,布局的getContentDescription()不会返回实际读取为其所有子项的组合的内容-它只返回为布局显式设置的内容,如果未设置任何内容,则返回null 我正在考虑在布局中添加一个虚拟视图,只是为了让文本读取以进行对讲,但这似乎有点不对劲 特别是,我们希望在对讲中添加描述,如“已选择。双击可取消选择”和其他类似描述 首先分离描述元素的内容描述和描述如何与元素交互的使用提示 如果一个视图组没有

是否可以在布局的末尾附加要读取的内容?设置根视图的内容描述将覆盖所有内容,然后不会读取子视图。此外,布局的getContentDescription()不会返回实际读取为其所有子项的组合的内容-它只返回为布局显式设置的内容,如果未设置任何内容,则返回null

我正在考虑在布局中添加一个虚拟视图,只是为了让文本读取以进行对讲,但这似乎有点不对劲


特别是,我们希望在对讲中添加描述,如“已选择。双击可取消选择”和其他类似描述

首先分离描述元素的内容描述和描述如何与元素交互的使用提示

如果一个视图组没有明确的内容描述,它将尝试通过整理该视图组的子视图的描述来推断描述

您应该为视图组设置明确的内容描述

此行为意味着您拥有完全控制权,并且将来对布局的更改不会包括视图组内容描述更改的副作用

附加选定状态的一种方法是使用自定义视图组:

public class SelectStateDescribingLinearLayout extends LinearLayout {

    public SelectStateDescribing(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    public CharSequence getContentDescription() {
        CharSequence contentDescription = super.getContentDescription();
        return isSelected() ? appendSelectedTo(contentDescription) : contentDescription;
    }

    private String appendSelectedTo(CharSequence contentDescription) {
        return getResources().getString(R.string.viewgroup_selected, contentDescription);
    }
}
其中,
R.string.viewgroup\u selected
是一个字符串资源,解析为:
%1$s selected


对于用法提示(“双击选择/取消选择”),可以使用辅助功能委托。根据Javadocs,这个。

不应该覆盖contentDescription。不要重写此方法,因为它不会影响呈现给辅助功能服务的内容描述。您必须调用{@link#setContentDescription(CharSequence)}来修改内容描述。