A Flutter library for creating snappable list views with support for dynamically sized children.
Snaplist is a Flutter library that provides a SnapList widget for creating snappable list views with smooth scrolling and precise item alignment. It solves the problem of building interactive carousels or galleries where items need to snap into view after user gestures, handling dynamic child sizes and separator customization automatically.
Flutter developers building mobile or web applications that require polished list-based interfaces like image galleries, onboarding screens, or horizontal navigation menus with snapping behavior.
Developers choose Snaplist for its simplicity, support for dynamically sized children, and seamless integration with Flutter's gesture system, avoiding the need to manually implement complex snapping logic.
A small library for creating snapping lists.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports children with varying or dynamically calculated sizes through the sizeProvider, ensuring precise snapping calculations as highlighted in the README.
Uses Flutter's built-in gesture detection for intuitive swiping, seamlessly fitting into existing interaction patterns without extra setup.
Offers a straightforward widget-based API that integrates easily with Flutter's ecosystem, reducing the need for complex snapping logic implementation.
Provides scroll progress data and center/next item indices in the builder, enabling advanced animations and UI feedback as demonstrated in the properties section.
Requires explicit sizeProvider and separatorProvider for each item, adding verbosity and potential errors even for simple, uniform lists.
Lacks built-in support for common list enhancements like pull-to-refresh, pagination, or item animations beyond basic snapping, as admitted by its minimal scope.
Dynamic size calculations and gesture handling may impact performance with very large lists or frequent updates, especially on lower-end devices.