indexToNode method
- int index
Returns the node underlying the list view item at position index
.
Implementation
T indexToNode(int index) {
if (includeRoot) {
if (index == 0) return root;
index--;
}
var node = _cachedNode(index);
if (node != null) return node;
var i = index, j = index;
bool next;
do {
next = false;
if (--i >= _offset) {
next = true;
node = _cachedNode(i);
if (node != null) {
_iterateForward(node, i, index);
node = _cachedNode(index);
assert(node != null);
return node;
}
}
if (++j < _endOffset) {
next = true;
node = _cachedNode(j);
if (node != null) {
_iterateBackward(node, j, index);
node = _cachedNode(index);
assert(node != null);
return node;
}
}
} while (next);
_iterateForward(root, -1, index);
node = _cachedNode(index);
assert(node != null);
return node;
}