android - 中断当前的 TalkBack 读出并开始新的读出?

标签 android accessibility talkback

我有一个可重新排序的 RecyclerView,每次您将一个项目移到另一个项目的下方或上方时,TalkBack 都会读出:

"Moved ItemTitle above item 2".

问题在于它将所有这些读数排队并全部执行。因此,如果您非常快地将一个项目从位置 12 移动到位置 1,它会显示:

"Moved ItemTitle above item 12. Moved ItemTitle above item 11. Moved ItemTitle above item 10. Moved ItemTitle above item 9..."

我如何告诉它停止当前的读出、清除队列并只读取最新的公告?

每次将 RecyclerView 项目拖动到另一个项目的上方或下方时都会触发该方法。

@Override
public boolean onItemMove(int fromPosition, int toPosition) {

    String direction = fromPosition < toPosition ? "below" : "above";
    String title1 = viewModel.get(fromPosition).getItemTitle();
    String title2 = viewModel.get(toPosition)).getItemTitle();

    // these announcements are queued 
    view.announceForAccessibility(view.getContext().getString(R.string.on_move_draggable_item_announce, title1, direction, title2));

    return true;
}

最佳答案

这样做:

((AccessibilityManager) view.getContext().getSystemService(Context.ACCESSIBILITY_SERVICE)).interrupt();

在您这样宣布之前:

view.announceForAccessibility(announcementMessage);

关于android - 中断当前的 TalkBack 读出并开始新的读出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40175081/

相关文章:

css - 我如何向程序员解释 CSS 定位比基于表格的布局有很多好处?

javascript - 创建易于访问的 Facebook 分享按钮

Android 对讲在 listview 结束时宣布 "in list of X item"

java - 使用 TalkBack 的 Android 辅助功能 : Adding a 'role' to a custom view object is not reading as a button or a link

android - 是否可以在后台连接到 Drive API?

java - 抽屉导航布局工具栏中的标题未更改

android - 在开始主要 Activity 时截图

macOS 辅助功能检查器不适用于 Slack

android - Talkback:防止说 Activity 标签(默认应用名称)

android - 如何在 Android 中设置到期日期