do not count Hidden nodes at the beginning of the scrollable (flutter/engine#6381)

This commit is contained in:
Jonah Williams
2018-10-01 11:15:22 -07:00
committed by GitHub
parent 6ecef08fc3
commit fad67c5eca

View File

@@ -720,17 +720,19 @@ class AccessibilityBridge
event.setMaxScrollX((int) max);
}
if (object.scrollChildren > 0) {
// We don't need to add 1 to the scroll index because TalkBack does this automagically.
event.setItemCount(object.scrollChildren);
event.setFromIndex(object.scrollIndex);
int visibleChildren = object.childrenInHitTestOrder.size() - 1;
// We assume that only children at the end of the list can be hidden.
assert(!object.childrenInHitTestOrder.get(object.scrollIndex).hasFlag(Flag.IS_HIDDEN));
for (; visibleChildren >= 0; visibleChildren--) {
SemanticsObject child = object.childrenInHitTestOrder.get(visibleChildren);
int visibleChildren = 0;
// handle hidden children at the beginning and end of the list.
for (SemanticsObject child : object.childrenInHitTestOrder) {
if (!child.hasFlag(Flag.IS_HIDDEN)) {
break;
}
visibleChildren += 1;
}
assert(object.scrollIndex + visibleChildren <= object.scrollChildren);
assert(!object.childrenInHitTestOrder.get(object.scrollIndex).hasFlag(Flag.IS_HIDDEN));
event.setToIndex(object.scrollIndex + visibleChildren);
}
sendAccessibilityEvent(event);