android - 如何在辅助功能服务的可滚动视图上方添加矩形?

我创建了自己的“话语提示”并希望看到相同的功能

故事:

如果视图是静态的,那么我可以像这样让所有孩子得到所有元素

val child: AccessibilityNodeInfo = rootInActiveWindow

deepChild(child)

...

fun deepChild(child: AccessibilityNodeInfo){
    for (i in 0 until child.childCount) {
        deepChild(child.getChild(i))
    }
    ...
}



在我获得了coodinates并通过windowsManager.addView(view, params)添加在WindowManager中绘制之后

问题:

如果视图不是静态的(例如具有回收站视图),则矩形将保持相同的位置,但是视图将被移动

我想要的是 ?

如何在视图上方添加此矩形并在滚动时保持位置?

PS:我知道TalkBack拥有开放源代码,但是该代码太疯狂了,我不想在开始10个小时后就死掉

enter image description here
enter image description here

最佳答案

我认为没有通用的方法可以做到这一点。您只需要侦听UI的更新并重新绘制该框即可。会有一些滞后。

“话语提示”通过使用AccessibilityFocus来处理此问题,这需要打开ExploreByTouch。可访问性焦点的焦点突出显示在应用程序过程中,因此它更加一致地遵循了视图。

本文翻译自 https://stackoverflow.com/questions/58791587/

网站遵循 CC BY-SA 4.0 协议,转载或引用请注明出处。

标签 android kotlin accessibility accessibilityservice android-accessibility


相关文章:

android - 与ScrollView一起更改滑动/抓取选项卡?

android - 如何在Android中使用平滑的动画翻译视图

ios - UIAccessibility更改UITableView画外音公告(#行#)

ios - 在表格视图中关闭单元格的配音焦点,而不为其他人关闭

html - 扫描站点的图像和alt属性[关闭]

android - 片段内的按钮

android - Android应用程序中的应用程序生存期持久性存储

android - java.lang.IllegalArgumentException:指定为非null的参数为null:method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull

android - Kotlin构造函数属性val不能在类中使用

android - Android NDK char数组初始化超过1Mb