AccessibilityNodeInfo.AccessibilityAction

public static final class AccessibilityNodeInfo.AccessibilityAction
extendsObject

java.lang.Object
android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction

added in API level 21.


定义一个在AccessibilityNodeInfo里执行的动作的类. 每一个操作都 有一个唯一的 id,且该 id 是强制的、可选的数据.

有三种类型的动作:

  • 标准动作
    • 这些是由平台中的标准UI widget报告和处理的操作. 这些类中为每个标准的动作定义了一个静态的常量, 例如. ACTION_FOCUS . 这些动作的label为null.
  • 自定义操作动作
    • 这些是由平台中的自定义的widget报告和处理的操作. 例如. 那些不是UI工具包的一部分. 例如, 一个应用为清除用户数据自定义了一个操作.
  • 重写标准动作
    • 通过重写标准的动作来自定义它们. 例如, 一个app为标准的ACTION_CLICK加入一个label来说明这个动作用来清除浏览器历史 .

通过在onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo)使用 addAction(AccessibilityAction) 来添加一个AccessibilityNodeInfo, 在performAccessibilityAction(int, Bundle)里执行这个动作.

注意: 支持这些操作的View应该使用IMPORTANT_FOR_ACCESSIBILITY_YES来执行setImportantForAccessibility(int)确保 AccessibilityService发现支持的动作组.

公共构造器


AccessibilityNodeInfo.AccessibilityAction

added in API level 21.

AccessibilityNodeInfo.AccessibilityAction (int actionId,
CharSequence label)

创建一个新的 AccessibilityAction. 加入一个标准动作不需要指定label, 使用静态常量就可以了. 你也可以重写一个标准动作的description. 下面演示为标准的点击动作加入一个自定义的label:

AccessibilityAction action = new AccessibilityAction(
           AccessibilityAction.ACTION_CLICK.getId(), getLocalizedLabel());
node.addAction(action);
参数
actionId int: 动作的id. 如果是标准动作就使用静态常量的getId获取. 如果是自定义动作, 则使用资源标识符.
label CharSequence: 新AccessibilityAction的label.这个值可能会为null.

results matching ""

    No results matching ""