Skip to content

AnimatedList which computes the item deltas each time the underliying list gets updated, and animates the list tiles automatically.

License

Notifications You must be signed in to change notification settings

gkpln3/automatic_animated_list

Repository files navigation

AutomaticAnimatedList

An AnimatedList which automatically computes the item deltas each time the underlying list changes and animates the list items automatically.

Example

Usage

Just provide AutomaticAnimatedList<T> your list, a keyingFunction, which will return an identifing key for each item, and the itemBuilder.

AutomaticAnimatedList<T> will take care of the rest.

class ItemsAnimatedList extends StatelessWidget {
  final List<ItemModel> items;
  const ItemsList({
    Key key,
    this.items,
  }) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return AutomaticAnimatedList<ItemModel>(
      items: items,
      insertDuration: Duration(seconds: 1),
      removeDuration: Duration(seconds: 1),
      keyingFunction: (ItemModel item) => Key(item.id),
      itemBuilder:
          (BuildContext context, ItemModel item, Animation<double> animation) {
        return FadeTransition(
          key: Key(item.id),
          opacity: animation,
          child: SizeTransition(
            sizeFactor: CurvedAnimation(
              parent: animation,
              curve: Curves.easeOut,
              reverseCurve: Curves.easeIn,
            ),
            child: ListTile(title: Text(item.name)),
          ),
        );
      },
    );
  }
}

About

AnimatedList which computes the item deltas each time the underliying list gets updated, and animates the list tiles automatically.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages