build method

  1. @override
Widget build (BuildContext context, int index)
override

Returns the child with the given index.

Should return null if asked to build a widget with a greater index than exists. If this returns null, estimatedChildCount must subsequently return a precise non-null value.

Subclasses typically override this function and wrap their children in AutomaticKeepAlive and RepaintBoundary widgets.

Implementation

@override
Widget build(BuildContext context, int index) {
  assert(children != null);
  if (index < 0 || index >= children.length)
    return null;
  Widget child = children[index];
  final Key key = child.key != null? _SaltedValueKey(child.key) : null;
  assert(
    child != null,
    "The sliver's children must not contain null values, but a null value was found at index $index"
  );
  if (addRepaintBoundaries)
    child = RepaintBoundary(child: child);
  if (addSemanticIndexes) {
    final int semanticIndex = semanticIndexCallback(child, index);
    if (semanticIndex != null)
      child = IndexedSemantics(index: semanticIndex + semanticIndexOffset, child: child);
  }
  if (addAutomaticKeepAlives)
    child = AutomaticKeepAlive(child: child);
  return KeyedSubtree(child: child, key: key);
}