使用Accessibility Service中的AccessibilityNodeInfo向上滚动并向下滚动

时间:2017-06-17 22:48:10

标签: android accessibility accessibilityservice

我想使用辅助功能服务执行滚动,我正在执行此操作

public boolean scrollView(AccessibilityNodeInfo nodeInfo) {

if (nodeInfo == null) return false;

if (nodeInfo.isScrollable()) {
    return nodeInfo.performAction(AccessibilityNodeInfo.ACTION_SCROLL_FORWARD);
}

for (int i = 0; i < nodeInfo.getChildCount(); i++) {
    if (scrollView(nodeInfo.getChild(i)) {
        return true;
    }
}

return false; }

但问题是当有四个选项可以执行时,左下和左右执行左右,但我也想在那里上下执行。 就像在Facebook应用程序中一样,它在顶部显示通知和新闻提要。但不在页面上。 有没有办法滚动用户的焦点。

1 个答案:

答案 0 :(得分:0)

你可能正在滚动错误的容器。您的层次结构中可能有多个“可滚动”的视图。尝试在heirarchy中找到不同的可滚动视图。

此外,在Android M中,他们添加了API来执行专门滚动不同方向的操作。因此,如果您实际上是在正确的视图上,则可以使用这些操作向不同方向滚动:

ACTION_SCROLL_FORWARD
ACTION_SCROLL_LEFT
ACTION_SCROLL_RIGHT

https://developer.android.com/reference/android/view/accessibility/AccessibilityNodeInfo.AccessibilityAction.html