android - 如何在辅助功能本地上下文菜单中添加自定义操作

标签 android accessibility contextmenu

当辅助功能对讲开启时。当用户绘制有角度的手势(即向上和向右滑动)时,我需要通过一些自定义操作来显示我的 View 。 类似于 Gmail 邮件,如下图所示 enter image description here

当用户绘制 Action 手势时,即当焦点位于任何消息上时向上和向右滑动时,会显示此弹出窗口。 Action menu

最佳答案

您可以向 AccessibilityDelegateonInitializeAccessibilityNodeInfo 方法内的 AccessibilityNodeInfo 对象添加自定义操作。

如果用户随后选择了该操作,则会在 View 上调用 performAccessibilityAction 方法。

在示例中,“myCustomAction”是向用户显示的文本。

MyCustomView.kt

init {
    accessibilityDelegate = object : View.AccessibilityDelegate() {
        override fun onInitializeAccessibilityNodeInfo(host: View?, info: AccessibilityNodeInfo?) {
            super.onInitializeAccessibilityNodeInfo(host, info)

            info?.addAction(AccessibilityNodeInfo.AccessibilityAction(R.id.myCustomAccessibilityEvent, "myCustomAction"));
        }
    }
}

override fun performAccessibilityAction(action: Int, arguments: Bundle?): Boolean {
    if (action == R.id.myCustomAccessibilityEvent) Log.d("TAG", "Accessibility event triggered")
    return true;
}

res/values/accessibility.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <item type="id" name="myCustomAccessibilityEvent"/>
</resources>

关于android - 如何在辅助功能本地上下文菜单中添加自定义操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58092735/

相关文章:

c# - Visual Studio 2010 : Add new class file that inherits from existing class?

javascript - 为什么我的上下文菜单会在页面顶部添加空白区域?

macos - OSX,无法使用自定义UTI进行Finder上下文菜单服务过滤

android - 在 Android 中以编程方式更改 ScrollView scrollBarStyle

java - 带有加速度计和方向计的简单代码的惊人行为

html - 如何在背景图像 Sprite 上获取 'alt' 文本标签

javascript - 当我尝试在网站上构建键盘快捷键时,为什么 jQuery keyup 不起作用?

android - 如何使用加速度计了解我的 Android 设备的移动速度?

运行外部代码/应用程序的 Android 应用程序?

ios - 限制支持的 Dynamic Type 字体大小