2017-06-17 1 views
0

I blättern mit Accessibility-Service ausführen möchten, und ich tue diesesBildlauf nach oben und blättern Service von AccessibilityNodeInfo in Accessibility unten

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; } 

Aber Problem ist, wenn vier Option gibt es auszuführen oben, unten links und rechts es führt links und rechts, aber ich möchte auch dort auf und ab durchführen. wie in Facebook App scrollen Sie oben auf Abschnitt, wo Benachrichtigungen und News-Feed sind.Aber nicht auf der Seite. gibt es eine Möglichkeit zu scrollen, wo der Fokus des Benutzers ist.

Antwort

0

Sie scrollen wahrscheinlich den falschen Container. Es gibt wahrscheinlich mehrere Ansichten in Ihrer Hierarchie, die "scrollbar" sind. Versuchen Sie verschiedene scrollbare Ansichten innerhalb Ihrer Hierarchie zu finden.

Auch in Android M haben sie APIs hinzugefügt, um Dinge wie zum Beispiel verschiedene Richtungen zu scrollen. Also, wenn Sie in der Tat auf die richtige Ansicht sind, können Sie in verschiedene Richtungen bewegen, diese Aktionen anstelle:

ACTION_SCROLL_FORWARD 
ACTION_SCROLL_LEFT 
ACTION_SCROLL_RIGHT 

usw.

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

+0

Aber bro, wenn ich Methode perform auf AccessibilityNodeInfo nennen und pass Aktion von AccessibilityNodeInfo.AccessibilityAction gibt es Fehler, dass Sie keine Aktion auf Knoten von AccessibilityNodeInfo.AccessibilityAction.ACTION_SCROLL_DOWN ausführen können, nur durchführen AccessibilityNodeInfo.ACTION_SCROLL_FORWARD oder AccessibilityNodeInfo.ACTION_SCROLL_BACKWARD. –

+0

Dann haben Sie entweder A: Haben Sie den falschen scrollbaren Knoten (es kann mehr als 1 sein), oder B: Sie sind abgespritzt und müssen die Zugänglichkeit Gesten API verwenden, die komplizierter ist, aber weniger abhängig von Android Dinge richtig zu bekommen. – ChrisCM

+0

kannst du bitte ein einfaches Beispiel geben? –

Verwandte Themen