FlexItemListView

ListView with customizable items.

Unlike the flutter ListView that force its children cross axis length to stretch, this widget can manipulate the cross axis length of the item.

This widget is useful when you need to display a list of widgets with different sizes, but still want to presist the scrollbar position.

Demo

demo

Usage

import "package:flutter/material.dart";
import "package:fl_utilities/fl_utilities.dart";

final myWidget = FlexItemListView(
  // adjust default item delegate here
  viewDelegate: FlexItemListViewDelegate(
    mainAxisLength: 200.0,
    crossAxisLength: 400.0,

    // alignment can also be specified
    crossAxisAlignment: FlexItemListViewAlignment.center,
  ),
  children: [
    FlexItemListViewItem(
      // overrides default
      mainAxisLength: 400.0,
      crossAxisLength: 200.0,
      crossAxisAlignment: FlexItemListViewAlignment.start,
      child: Text('Title'), // actual item that will be displayed
    ),
    FlexItemListViewItem(child: Card()),
  ],
  // Or you can do mapping for existing list of widgets.
  // children: items.map((item) => FlexItemListViewItem(child: item)).toList(),
);

API

  • FlexItemListViewListView

    ListView with customizable items.

  • FlexItemListViewItem

    [FlexItemListView] children delegate.

  • FlexItemListViewDelegate

    [FlexItemListView] children delegate default.

Visit API Reference for detailed API docs.