我想宣布android中间进度条上的加载文本。我想为加载中间进度条时在Android设备上使用对讲服务的残疾人输出类似的内容。
我检查了一下google,发现可以使用:
1)在进度栏视图上宣布为ForAccessibility。 (在我的情况下不起作用,仅在使用Handler加载时有效)
我的代码
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
override fun onResume() {
super.onResume()
val progressbar: ProgressBar = findViewById(R.id.testProgressBar)
// progressbar.announceForAccessibility("My name is Neo "); // not working
Handler().postDelayed(object : Runnable {
override fun run() {
progressbar.announceForAccessibility("My name is Neo ");
}
}, 1000)
}
你们还有其他建议来解决这种问题吗?我不知道人们是如何在这么多地方工作的https://www.programcreek.com/java-api-examples/?class=android.view.View&method=announceForAccessibility
感谢您的帮助。
答案 0 :(得分:0)
您可以尝试礼貌的android:accessibilityLiveRegion
,以确保“话语提示”不会打断已经宣布的事情:
<ProgressBar
android:id="@+id/testProgressBar"
…
android:accessibilityLiveRegion="polite" />
更多信息: Using a Live Region
答案 1 :(得分:0)
使进度条具有焦点,然后根据您的要求发送自定义内容描述。 对讲将为您处理。
public void showProgresSBarWithCustomDescription(val contentDesc) {
progressBar.contentDescription = contentDesc
progressBar.visibility = View.VISIBLE
}
//Add following properties to progressbar
android:focusable="true"
android:focusableInTouchMode="true"
android:importantForAccessibility="yes"