在辅助功能模式下,我想覆盖 TextView 的 TalkBack

发布于 2024-12-02 06:53:01 字数 226 浏览 2 评论 0原文

我目前有一个 ListView,该列表的每个元素至少由两个 TextView 组成。我正在为我的应用程序添加可访问性,因此每当我关注某个列表元素时,它就会读出每个 TextView 中的文本。

现在,我正在向它发送 TalkBack 事件,但在它完成后,它会再次读出 TextView。我希望它只完成我的 TalkBack 事件,而不是其他任何事情。

有人知道如何做到这一点吗?

提前致谢!

I currently have a ListView and each element of that list consists of at least two TextViews. I'm adding accessibility to my app, so whenever I focus on a certain list element, it reads out the text in each TextView.

Right now, I'm sending it a TalkBack event, but right after it completes it, it reads out the TextViews again. I want it to only complete my TalkBack event and nothing else.

Anyone have a clue how to do this?

Thanks in advance!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

败给现实 2024-12-09 06:53:01

当然,只需覆盖 View.dispatchPopulateAccessibilityEvent

来自文档(强调我的):

典型的实现将在此视图上调用 onPopulateAccessibilityEvent(AccessibilityEvent) ,然后在每个子视图上调用dispatchPopulateAccessibilityEvent(AccessibilityEvent) 。 如果需要自定义事件文本内容,请重写此方法。

在该方法中,您可以通过以下方式向事件添加任何文本:

public boolean dispatchPopulateAccessibilityEvent(AccessibilityEvent event) {
    event.getText().add("Hey look!");
    return true;
}

Sure, just override View.dispatchPopulateAccessibilityEvent.

From the doc (emphasis mine):

A typical implementation will call onPopulateAccessibilityEvent(AccessibilityEvent) on the this view and then call the dispatchPopulateAccessibilityEvent(AccessibilityEvent) on each child. Override this method if custom population of the event text content is required.

Within that method, you can add any text you want to the event in the following manner:

public boolean dispatchPopulateAccessibilityEvent(AccessibilityEvent event) {
    event.getText().add("Hey look!");
    return true;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文