CollectionView<T> class
The CollectionView widget is a wrapper for the ListView widget. It provides a simple way to display a list of items with full type safety.
Example:
CollectionView<String>(
data: () => ['Item 1', 'Item 2', 'Item 3'],
builder: (context, item) {
return Container(
color: item.isEven ? Colors.grey : Colors.white,
child: Text('${item.data} at ${item.index}'),
);
},
)
With async data:
CollectionView<User>(
data: () async => await api.fetchUsers(),
builder: (context, item) => UserTile(user: item.data),
empty: Text('No users found'),
)
With pull-to-refresh and pagination:
CollectionView<User>.pullable(
data: (iteration) async => api.getUsers(page: iteration),
builder: (context, item) => UserTile(user: item.data),
onRefresh: () => print('Refreshed!'),
)
- Inheritance
-
- Object
- DiagnosticableTree
- Widget
- StatefulWidget
- CollectionView
- Available extensions
Constructors
-
CollectionView({Key? key, required CollectionItemBuilder<
T> builder, required dynamic data(), dynamic transform(List<T> data)?, Widget? empty, LoadingStyle? loadingStyle, String? stateName, Axis? scrollDirection, bool? reverse, ScrollController? controller, bool? primary, ScrollPhysics? physics, bool? shrinkWrap, EdgeInsets? padding, double? itemExtent, Widget? prototypeItem, ChildIndexGetter? findChildIndexCallback, bool addAutomaticKeepAlives = true, bool addRepaintBoundaries = true, bool addSemanticIndexes = true, double? cacheExtent, int? semanticChildCount, DragStartBehavior? dragStartBehavior, ScrollViewKeyboardDismissBehavior? keyboardDismissBehavior, String? restorationId, Clip? clipBehavior, Widget? header, dynamic sort(List<T> items)?, double? spacing}) -
const
-
CollectionView.grid({Key? key, required dynamic data(), required CollectionItemBuilder<
T> builder, int? crossAxisCount = 2, double? mainAxisSpacing = 1.0, double? crossAxisSpacing = 1.0, dynamic transform(List<T> data)?, Widget? empty, LoadingStyle? loadingStyle, String? stateName, Axis? scrollDirection, bool? reverse, ScrollController? controller, bool? primary, ScrollPhysics? physics, bool? shrinkWrap, EdgeInsets? padding, double? itemExtent, Widget? prototypeItem, ChildIndexGetter? findChildIndexCallback, bool addAutomaticKeepAlives = true, bool addRepaintBoundaries = true, bool addSemanticIndexes = true, double? cacheExtent, int? semanticChildCount, DragStartBehavior? dragStartBehavior, ScrollViewKeyboardDismissBehavior? keyboardDismissBehavior, String? restorationId, Clip? clipBehavior, Widget? header, dynamic sort(List<T> items)?, double? spacing}) -
const
-
CollectionView.pullable({Key? key, required CollectionItemBuilder<
T> builder, required dynamic data(int iteration), dynamic onRefresh()?, dynamic beforeRefresh()?, dynamic afterRefresh(dynamic data)?, String? headerStyle, dynamic transform(List<T> data)?, Widget? empty, LoadingStyle? loadingStyle, String? stateName, Axis? scrollDirection, bool? reverse, ScrollController? controller, bool? primary, ScrollPhysics? physics, bool? shrinkWrap, EdgeInsets? padding, double? itemExtent, Widget? prototypeItem, ChildIndexGetter? findChildIndexCallback, bool addAutomaticKeepAlives = true, bool addRepaintBoundaries = true, bool addSemanticIndexes = true, double? cacheExtent, int? semanticChildCount, DragStartBehavior? dragStartBehavior, ScrollViewKeyboardDismissBehavior? keyboardDismissBehavior, String? restorationId, Clip? clipBehavior, Widget? header, dynamic sort(List<T> items)?, double? spacing}) -
Creates a pullable list view with pull-to-refresh and pagination support.
const
-
CollectionView.pullableGrid({Key? key, required CollectionItemBuilder<
T> builder, required dynamic data(int iteration), int? crossAxisCount = 2, double? mainAxisSpacing = 0, double? crossAxisSpacing = 0, dynamic onRefresh()?, dynamic beforeRefresh()?, dynamic afterRefresh(dynamic data)?, String? headerStyle, dynamic transform(List<T> data)?, Widget? empty, LoadingStyle? loadingStyle, String? stateName, Axis? scrollDirection, bool? reverse, ScrollController? controller, bool? primary, ScrollPhysics? physics, bool? shrinkWrap, EdgeInsets? padding, double? itemExtent, Widget? prototypeItem, ChildIndexGetter? findChildIndexCallback, bool addAutomaticKeepAlives = true, bool addRepaintBoundaries = true, bool addSemanticIndexes = true, double? cacheExtent, int? semanticChildCount, DragStartBehavior? dragStartBehavior, ScrollViewKeyboardDismissBehavior? keyboardDismissBehavior, String? restorationId, Clip? clipBehavior, Widget? header, dynamic sort(List<T> items)?, double? spacing}) -
Creates a pullable grid view with pull-to-refresh and pagination support.
const
-
CollectionView.pullableSeparated({Key? key, required CollectionItemBuilder<
T> builder, required dynamic data(int iteration), required IndexedWidgetBuilder? separatorBuilder, dynamic onRefresh()?, dynamic beforeRefresh()?, dynamic afterRefresh(dynamic data)?, String? headerStyle, dynamic transform(List<T> data)?, Widget? empty, LoadingStyle? loadingStyle, String? stateName, Axis? scrollDirection, bool? reverse, ScrollController? controller, bool? primary, ScrollPhysics? physics, bool? shrinkWrap, EdgeInsets? padding, double? itemExtent, Widget? prototypeItem, ChildIndexGetter? findChildIndexCallback, bool addAutomaticKeepAlives = true, bool addRepaintBoundaries = true, bool addSemanticIndexes = true, double? cacheExtent, int? semanticChildCount, DragStartBehavior? dragStartBehavior, ScrollViewKeyboardDismissBehavior? keyboardDismissBehavior, String? restorationId, Clip? clipBehavior, Widget? header, dynamic sort(List<T> items)?, double? spacing}) -
Creates a pullable separated list view with pull-to-refresh and pagination support.
const
-
CollectionView.separated({Key? key, required dynamic data(), required CollectionItemBuilder<
T> builder, required IndexedWidgetBuilder? separatorBuilder, dynamic transform(List<T> data)?, Widget? empty, LoadingStyle? loadingStyle, String? stateName, Axis? scrollDirection, bool? reverse, ScrollController? controller, bool? primary, ScrollPhysics? physics, bool? shrinkWrap, EdgeInsets? padding, double? itemExtent, Widget? prototypeItem, ChildIndexGetter? findChildIndexCallback, bool addAutomaticKeepAlives = true, bool addRepaintBoundaries = true, bool addSemanticIndexes = true, double? cacheExtent, int? semanticChildCount, DragStartBehavior? dragStartBehavior, ScrollViewKeyboardDismissBehavior? keyboardDismissBehavior, String? restorationId, Clip? clipBehavior, Widget? header, dynamic sort(List<T> items)?, double? spacing}) -
const
Properties
- addAutomaticKeepAlives → bool
-
final
- addRepaintBoundaries → bool
-
final
- addSemanticIndexes → bool
-
final
- afterRefresh → dynamic Function(dynamic data)?
-
final
- beforeRefresh → dynamic Function()?
-
final
-
builder
→ CollectionItemBuilder<
T> -
final
- cacheExtent → double?
-
final
- clipBehavior → Clip?
-
final
- controller → ScrollController?
-
final
- crossAxisCount → int?
-
final
- crossAxisSpacing → double?
-
final
- data → dynamic Function()?
-
final
- dragStartBehavior → DragStartBehavior?
-
final
- empty → Widget?
-
final
- findChildIndexCallback → ChildIndexGetter?
-
final
-
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- header → Widget?
-
final
- headerStyle → String?
-
final
- isPullable → bool
-
final
- itemExtent → double?
-
final
- key → Key?
-
Controls how one widget replaces another widget in the tree.
finalinherited
- keyboardDismissBehavior → ScrollViewKeyboardDismissBehavior?
-
final
- kind → CollectionViewKind
-
final
- loadingStyle → LoadingStyle?
-
final
- mainAxisSpacing → double?
-
final
- onRefresh → dynamic Function()?
-
final
- padding → EdgeInsets?
-
final
- paginatedData → dynamic Function(int iteration)?
-
final
- physics → ScrollPhysics?
-
final
- primary → bool?
-
final
- prototypeItem → Widget?
-
final
- restorationId → String?
-
final
- reverse → bool?
-
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- scrollDirection → Axis?
-
final
- semanticChildCount → int?
-
final
- separatorBuilder → IndexedWidgetBuilder?
-
final
- shrinkWrap → bool?
-
final
-
sort
→ dynamic Function(List<
T> items)? -
final
- spacing → double?
-
final
- stateName → String?
-
final
-
transform
→ dynamic Function(List<
T> data)? -
final
Methods
-
connectiveOr(
{required Widget offline}) → Widget -
Available on Widget, provided by the ConnectiveExtension extension
Wraps the widget in a Connective that shows an offline placeholder. -
createElement(
) → StatefulElement -
Creates a StatefulElement to manage this widget's location in the tree.
inherited
-
createState(
) → State< CollectionView< T> > -
Creates the mutable state for this widget at a given location in the tree.
override
-
debugDescribeChildren(
) → List< DiagnosticsNode> -
Returns a list of DiagnosticsNode objects describing this node's
children.
inherited
-
debugFillProperties(
DiagnosticPropertiesBuilder properties) → void -
Add additional properties associated with the node.
inherited
-
faderBottom(
{double strength = 0.2, Color color = Colors.black}) → FadeOverlay -
Available on StatefulWidget, provided by the NyStatefulExt extension
Make gradient fader from the bottom of the widget.strengthranges from 0.0 (subtle) to 1.0 (strong). -
faderFrom(
{double strength = 0.2, Color color = Colors.black, AlignmentGeometry begin = Alignment.topCenter, AlignmentGeometry end = Alignment.bottomCenter}) → FadeOverlay -
Available on StatefulWidget, provided by the NyStatefulExt extension
Make gradient fader with custom alignment.strengthranges from 0.0 (subtle) to 1.0 (strong). -
faderLeft(
{double strength = 0.2, Color color = Colors.black}) → FadeOverlay -
Available on StatefulWidget, provided by the NyStatefulExt extension
Make gradient fader from the left of the widget.strengthranges from 0.0 (subtle) to 1.0 (strong). -
faderRight(
{double strength = 0.2, Color color = Colors.black}) → FadeOverlay -
Available on StatefulWidget, provided by the NyStatefulExt extension
Make gradient fader from the right of the widget.strengthranges from 0.0 (subtle) to 1.0 (strong). -
faderTop(
{double strength = 0.2, Color color = Colors.black}) → FadeOverlay -
Available on StatefulWidget, provided by the NyStatefulExt extension
Make gradient fader from the top of the widget.strengthranges from 0.0 (subtle) to 1.0 (strong). -
flexible(
{Key? key, int flex = 1, FlexFit fit = FlexFit.loose}) → Flexible -
Available on StatefulWidget, provided by the NyStatefulExt extension
Make a StatefulWidget Flexible. -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
onlyOffline(
) → Widget -
Available on Widget, provided by the ConnectiveExtension extension
Only shows the widget when offline, otherwise shows nothing. -
onlyOnline(
) → Widget -
Available on Widget, provided by the ConnectiveExtension extension
Only shows the widget when online, otherwise shows nothing. -
pullable(
{required Future< void> onRefresh()?, PullableConfig? pullableConfig}) → Widget -
Available on Widget, provided by the NyWidgetExt extension
Make a widget pullable using the Pullable widget. -
toDiagnosticsNode(
{String? name, DiagnosticsTreeStyle? style}) → DiagnosticsNode -
Returns a debug representation of the object that is used by debugging
tools and by DiagnosticsNode.toStringDeep.
inherited
-
toSkeleton(
{Key? key, bool? ignoreContainers, bool? justifyMultiLineText, Color? containersColor, bool ignorePointers = true, bool enabled = true, PaintingEffect? effect, TextBoneBorderRadius? textBoneBorderRadius}) → Skeletonizer -
Available on Widget, provided by the NyWidgetExt extension
Make a widget a skeleton using theSkeletonizerpackage. -
toString(
{DiagnosticLevel minLevel = DiagnosticLevel.info}) → String -
A string representation of this object.
inherited
-
toStringDeep(
{String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug, int wrapWidth = 65}) → 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 ==(
Object other) → bool -
The equality operator.
inherited
Static Methods
-
removeFromIndex(
String stateName, int index) → void - Removes an item from the list at the given index.
-
stateReset(
String stateName) → void - Resets the state.