我正在尝试在contentDescription
上设置TextView
,但TalkBack似乎没有宣布它。 “话语提示”仅表达文字内容。
textView.setText("2d 9h left");
textView.setContentDescription("2days 9hours left");
上面的第二行无效。话语提示说:“还剩2d 9h”。
我也尝试了以下方法:
ViewCompat.setAccessibilityDelegate(textView, new AccessibilityDelegateCompat()
{
@Override
public void onPopulateAccessibilityEvent(View host, AccessibilityEvent event)
{
super.onPopulateAccessibilityEvent(host, event);
event.getText().add(host.getContentDescription());
}
});
但这会导致“话语提示”宣布“还剩2天9小时,还剩2d 9h”,这也是不正确的。
最佳答案
据我所知,contentDescription
仅适用于必须进行文字描述的视图。例如,一个ImageView
可能具有一个contentDescription
,可访问性对讲功能可以通过该TextView
知道触摸时该视图元素的内容。
我是从this link引用的。
内容描述属性将文本描述链接到
控件,ImageView或其他没有对象的可聚焦对象
文字内容。
因此,对讲功能应仅对ImageView
中编写的文本进行发声。
对于您的情况,您可以考虑采用解决方法。获取一个contentDescription
并将其设置为ImageView
。 TextView
的大小应与TextView
相同,并应放在ImageView
上。因此,单击contentDescription
时,您可以听到程序中指定的所需ImageView
。 invisible
可以具有透明背景,也可以放在中。希望有帮助!