A sliver that places multiple box children with the same main axis extent in a linear array.

SliverFixedExtentList places its children in a linear array along the main axis starting at offset zero and without gaps. Each child is forced to have the itemExtent in the main axis and the SliverConstraints.crossAxisExtent in the cross axis.

SliverFixedExtentList is more efficient than SliverList because SliverFixedExtentList does not need to perform layout on its children to obtain their extent in the main axis.

Sample code

This example, which would be inserted into a CustomScrollView.slivers list, shows an infinite number of items in varying shades of blue:

new SliverFixedExtentList(
  itemExtent: 50.0,
  delegate: new SliverChildBuilderDelegate(
    (BuildContext context, int index) {
      return new Container(
        alignment: Alignment.center,
        color: Colors.lightBlue[100 * (index % 9)],
        child: new Text('list item $index'),
      );
    },
  ),
)

See also:

Inheritance

Constructors

SliverFixedExtentList({Key key, @required SliverChildDelegate delegate, @required double itemExtent })
Creates a sliver that places box children with the same main axis extent in a linear array.
const

Properties

itemExtent double
The extent the children are forced to have in the main axis.
final
delegate SliverChildDelegate
The delegate that provides the children for this widget. [...]
final, inherited
hashCode int
The hash code for this object. [...]
read-only, inherited
key Key
Controls how one widget replaces another widget in the tree. [...]
final, inherited
runtimeType Type
A representation of the runtime type of the object.
read-only, inherited

Methods

createRenderObject(BuildContext context) RenderSliverFixedExtentList
updateRenderObject(BuildContext context, RenderSliverFixedExtentList renderObject) → void
Copies the configuration described by this RenderObjectWidget to the given RenderObject, which will be of the same type as returned by this object's createRenderObject. [...]
createElement() SliverMultiBoxAdaptorElement
RenderObjectWidgets always inflate to a RenderObjectElement subclass.
inherited
debugDescribeChildren() List<DiagnosticsNode>
Returns a list of DiagnosticsNode objects describing this node's children. [...]
@protected, inherited
debugFillProperties(DiagnosticPropertiesBuilder description) → void
inherited
didUnmountRenderObject(RenderObject renderObject) → void
A render object previously associated with this widget has been removed from the tree. The given RenderObject will be of the same type as returned by this object's createRenderObject.
@protected, inherited
estimateMaxScrollOffset(SliverConstraints constraints, int firstIndex, int lastIndex, double leadingScrollOffset, double trailingScrollOffset) double
Returns an estimate of the max scroll extent for all the children. [...]
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a non-existent method or property is accessed. [...]
inherited
toDiagnosticsNode({String name, DiagnosticsTreeStyle style }) DiagnosticsNode
Returns a debug representation of the object that is used by debugging tools and by toStringDeep. [...]
inherited
toString({DiagnosticLevel minLevel: DiagnosticLevel.debug }) String
Returns a string representation of this object.
inherited
toStringDeep({String prefixLineOne: '', String prefixOtherLines, DiagnosticLevel minLevel: DiagnosticLevel.debug }) String
Returns a string representation of this node and its descendants. [...]
inherited
toStringShallow({String joiner: ', ', DiagnosticLevel minLevel: DiagnosticLevel.debug }) String
Returns a one-line detailed description of the object. [...]
inherited
toStringShort() String
A short, textual description of this widget.
inherited

Operators

operator ==(other) bool
The equality operator. [...]
inherited