familyList<T, Param> static method

Widget familyList<T, Param>({
  1. required FutureProvider<List<T>> provider(
    1. Param
    ),
  2. required Param param,
  3. required Widget itemBuilder(
    1. T item,
    2. int index
    ),
  4. Widget? loading,
  5. Widget error(
    1. Object error,
    2. StackTrace? stackTrace
    )?,
  6. EdgeInsets? padding,
  7. bool shrinkWrap = false,
  8. ScrollPhysics? physics,
  9. VoidCallback? onRetry,
  10. Future<void> onRefresh()?,
})

Creates a refreshable list widget with family support

Use this when your provider takes parameters.

Implementation

static Widget familyList<T, Param>({
  required FutureProvider<List<T>> Function(Param) provider,
  required Param param,
  required Widget Function(T item, int index) itemBuilder,

  // Customization
  Widget? loading,
  Widget Function(Object error, StackTrace? stackTrace)? error,
  EdgeInsets? padding,
  bool shrinkWrap = false,
  ScrollPhysics? physics,

  // Callbacks
  VoidCallback? onRetry,
  Future<void> Function()? onRefresh,
}) {
  return _StateFamilyWidget<List<T>, Param>(
    provider: provider,
    param: param,
    onRefresh: onRefresh,
    onRetry: onRetry,
    loading: loading,
    error: error,
    builder: (items, ref) {
      return ListView.builder(
        padding: padding,
        shrinkWrap: shrinkWrap,
        physics: physics,
        itemCount: items.length,
        itemBuilder: (context, index) => itemBuilder(items[index], index),
      );
    },
  );
}