我正在尝试在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”,这也是不正确的。
答案 0 :(得分:1)
据我所知,contentDescription
仅适用于必须进行文字描述的视图。例如,ImageView
可能有一个contentDescription
,可访问性对讲功能可以通过TextView
知道该视图元素在被触摸时的内容。
我引用this link。
内容描述属性将文本描述链接到 控件,ImageView或其他没有对象的可聚焦对象 文字内容。
因此,对讲功能应仅对ImageView
中所写的文本进行发声。
在您的情况下,您可以考虑采用解决方法。获取一个contentDescription
并将其设置为ImageView
。 TextView
的大小应与TextView
相同,并应放在ImageView
上。因此,单击contentDescription
时,您可以听到程序中指定的所需ImageView
。 invisible
可以具有透明背景,也可以放在
def get_window(row, df):
return (1 + df).rolling(window=int(row['labels_y'])).apply(np.prod, raw=True).loc[row.name]-1
result = df1.apply(get_window, axis=1, df=df1)
中。希望有帮助!
答案 1 :(得分:0)
设置contentDescription后,textView的文本可能会以其他方法/在其他位置更新。 您是否安装了最新版本的“话语提示”? 同样,您将必须在设置此文本的任何地方设置contentdescription。 如果需要更多帮助,请告诉我。 如果您愿意,我也会帮助您编写代码 是的,无论内容如何,内容描述都可以应用于任何视图。因此请不要使用图像视图。
答案 2 :(得分:0)
对我唯一有用的是AccessibilityDelegate(科特琳):
val accessibilityDelegate: View.AccessibilityDelegate =
object : View.AccessibilityDelegate() {
override fun onInitializeAccessibilityNodeInfo(v: View?, info: AccessibilityNodeInfo) {
super.onInitializeAccessibilityNodeInfo(v, info)
info.text = "Custom Text"
}
}
myView.accessibilityDelegate = accessibilityDelegate