1

我想在 android 中间进度条上宣布加载文本。我想在加载中间进度条时为在 Android 设备上使用对讲服务的残疾人输出类似的内容。

  • 文件正在加载。
  • 正在获取文件。
  • 文件正在转换。
  • 文件已加载。

我检查了谷歌,发现我可以使用:

1) 在进度条视图上announceForAccessibility。(在我的情况下不起作用,仅在我使用处理程序加载时才起作用)

我的代码

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

谢谢你的帮助。

4

2 回答 2

2

您可以尝试礼貌的android:accessibilityLiveRegion,这将确保 TalkBack 不会打断已经宣布的内容:

<ProgressBar 
    android:id="@+id/testProgressBar"
    …
    android:accessibilityLiveRegion="polite" />

更多信息: 使用实时区域

于 2019-07-09T10:06:02.967 回答
0

使您的进度条具有焦点,然后根据您的要求发送自定义内容描述。Talkback 将为您处理。

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"
于 2019-08-22T20:20:45.267 回答