Smart List Builder

Smart List Builder is a Flutter UI package that provides animated ListView and SliverList builders with built-in loading shimmer, empty state handling, and item selection animation using GetX.

Features

  • Animated ListView builder
  • Animated SliverList builder for CustomScrollView
  • Built-in loading shimmer
  • Empty state handling
  • Item press & selection animation
  • Optional controller injection
  • Generic and reusable
  • Null-safe and GetX powered

Installation

Add the dependency in your pubspec.yaml:

############### smart_list_builder ###############

dependencies:
  smart_list_builder: ^1.0.1

Smart List Builder is a Flutter UI package that provides animated ListView and SliverList builders with built-in loading shimmer, empty state handling, and item selection animation using GetX.

############### Getting Started ###############

This project is a starting point for a Flutter application.

A few resources to get you started if this is your first Flutter project:

- [Lab: Write your first Flutter app](https://docs.flutter.dev/get-started/codelab)
- [Cookbook: Useful Flutter samples](https://docs.flutter.dev/cookbook)

For help getting started with Flutter development, view the
[online documentation](https://docs.flutter.dev/), which offers tutorials,
samples, guidance on mobile development, and a full API reference.


############### Basic Usage (ListView) ###############

SmartListViewBuilder<String>(
  items: ['Apple', 'Banana', 'Orange'],
  itemBuilder: (item, isSelected, index) {
    return Container(
      padding: const EdgeInsets.all(16),
      decoration: BoxDecoration(
        color: isSelected ? Colors.grey.shade200 : Colors.white,
        borderRadius: BorderRadius.circular(8),
      ),
      child: Text(item),
    );
  },
  onItemTap: (index, item) {
    debugPrint('Tapped: $item');
  },
)


############### Loading State (Shimmer) ###############

final isLoading = true.obs;
SmartListViewBuilder<String>(
  items: [],
  isLoading: isLoading,
  itemBuilder: (_, __, ___) => const SizedBox(),
)


############### Empty State ###############

SmartListViewBuilder<String>(
  items: [],
  emptyMessage: 'No items available',
  itemBuilder: (_, __, ___) => const SizedBox(),
)

############### Sliver Usage ###############

CustomScrollView(
  slivers: [
    SmartSliverListViewBuilder<String>(
      items: RxList(['One', 'Two', 'Three']),
      itemBuilder: (item, isSelected, index) {
        return ListTile(title: Text(item));
      },
    ),
  ],
)


############### Controller Injection ###############

final controller = SmartListController();

SmartListViewBuilder<String>(
  controller: controller,
  items: ['A', 'B', 'C'],
  itemBuilder: (item, isSelected, index) {
    return Text(item);
  },
)


############### Public API ###############
SmartListViewBuilder
SmartSliverListViewBuilder
SmartListController
SmartListShimmerBuilder
SmartShimmerBox

############### Requirements ###############
Flutter 3.10+
Dart 3.0+
GetX ^4.6.6# smart_list_builder

Libraries

smart_list_builder