A Flutter package that provides smooth page transitions and animations with customizable effects. Perfect for creating engaging user interfaces with horizontal page navigation.
Package selection guidance compiled from public package information, community data, and project usage.
PageAnimator is a Flutter package designed to deliver smooth, customizable page transitions and animations for horizontal navigation. It enhances user interfaces with fluid visual effects, making app navigation more engaging and intuitive. Ideal for apps requiring dynamic screen changes, such as onboarding flows, dashboards, or multi-step processes. The package supports all major platforms including Android, iOS, Web, macOS, Windows, and Linux, ensuring consistent performance across devices.
Use cases
Onboarding screens
Dashboard navigation
Multi-step forms
Interactive tutorials
Swipeable content
Animated tab transitions
Key features
Customizable transition effects
Smooth horizontal page animations
Cross-platform compatibility
Easy integration with PageView
Support for gesture-based navigation
Configurable duration and curve
Suitable for
Developers seeking animated navigation
Apps with swipeable interfaces
Design-focused UI implementations
Mobile and web applications with rich interactions
Teams prioritizing user experience
Considerations
May impact performance with complex animations
Requires careful tuning for optimal UX
Limited built-in presets (customization required)
Not ideal for simple static pages
Best suited for moderate animation complexity
Original README
Original README snapshot from the linked source repository. Visit the repository for the latest content.
Page Animator
A Flutter package that provides smooth page transitions and animations with customizable effects. Perfect for creating engaging user interfaces with horizontal page navigation.
Features
Multiple animation types for page transitions, switchable in realtime
Infinite scrolling in both directions, with ability to set bounds in realtime
Animated switcher - tap on a page, and it will zoom out, similar to Kindle reader
Immersive mode support
Animation Types
The package supports various animation types through PageAnimatorType. Here's a comprehensive list of all available animations:
The PageAnimatorController provides several methods to control page transitions:
animateToOffset(int offset): Animate to a specific page offset
type: Change the animation type dynamically
switcherActive: Control the page switcher state
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Parameters
children: List of widgets to display as pages
onPageChanged: Callback when page is changed
leftMostIndex: The first page user can go to
rightMostIndex: The last page user can go to
controller: PageAnimatorController instance
enableImmersiveSwitch: Optional boolean that controls whether to enable immersive mode while switcher is inactive, and automatically disable it when user enters switcher. If not specified, defaults to true.
onDragStart: Optional callback when drag starts
onDragEnd: Optional callback when drag ends
onDragAnimationStart: Optional callback when animation starts
onDragAnimationEnd: Optional callback when animation ends