Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

https://github.com/Milad-Akarie/smooth_page_indicator

Flutter Smooth PageView indicators
https://github.com/Milad-Akarie/smooth_page_indicator

Last synced: 3 months ago
JSON representation

Flutter Smooth PageView indicators

Lists

README

        

## smooth_page_indicator

##### Customizable animated page indicator with a set of built-in effects.


MIT License
stars
pub version
Buy Me A Coffee

![](https://github.com/Milad-Akarie/smooth_page_indicator/blob/master/demo/smooth_page_indicator_demo_1.gif?raw=true)

##### infinite Loop support

![](https://github.com/Milad-Akarie/smooth_page_indicator/blob/master/demo/smooth_page_indicator_demo_loop.gif?raw=true)

##### Scrolling dots effect

![](https://github.com/Milad-Akarie/smooth_page_indicator/blob/master/demo/smooth_page_indicator_demo_4.gif?raw=true)

### Effects

| Effect | Preview |
|:----------------------------------------|:------------------------------------------------------------------------------------------------------------------------:|
| Worm | ![](https://github.com/Milad-Akarie/smooth_page_indicator/blob/master/demo/worm.gif?raw=true) |
| Worm style = WormStyle.thin | ![](https://github.com/Milad-Akarie/smooth_page_indicator/blob/master/demo/worm-thin.gif?raw=true) |
| Worm style = WormStyle.underground | ![](https://github.com/Milad-Akarie/smooth_page_indicator/blob/master/demo/worm_underground_demo.gif?raw=true) |
| Worm style = WormStyle.thinUnderground | ![](https://github.com/Milad-Akarie/smooth_page_indicator/blob/master/demo/thin_worm_underground_demo.gif?raw=true) |
| Expanding Dots | ![](https://github.com/Milad-Akarie/smooth_page_indicator/blob/master/demo/expanding-dot.gif?raw=true) |
| Jumping dot | ![](https://github.com/Milad-Akarie/smooth_page_indicator/blob/master/demo/jumping-dot.gif?raw=true) |
| Jumping dot with vertical offset | ![](https://github.com/Milad-Akarie/smooth_page_indicator/blob/master/demo/jumping-dot-effect-with-voffset.gif?raw=true) |
| Scrolling Dots | ![](https://github.com/Milad-Akarie/smooth_page_indicator/blob/master/demo/scrolling-dots-2.gif?raw=true) |
| Slide | ![](https://github.com/Milad-Akarie/smooth_page_indicator/blob/master/demo/slide.gif?raw=true) |
| Slide style = SlideStyle.slideUnder | ![](https://github.com/Milad-Akarie/smooth_page_indicator/blob/master/demo/slide_under_demo.gif?raw=true) |
| Scale | ![](https://github.com/Milad-Akarie/smooth_page_indicator/blob/master/demo/scale.gif?raw=true) |
| Swap | ![](https://github.com/Milad-Akarie/smooth_page_indicator/blob/master/demo/swap.gif?raw=true) |
| Swap type = SwapType.yRotation | ![](https://github.com/Milad-Akarie/smooth_page_indicator/blob/master/demo/swap-yrotation.gif?raw=true) |
| Color Transition | ![](https://github.com/Milad-Akarie/smooth_page_indicator/blob/master/demo/color-transition.gif?raw=true) |
| Customizable demo-1 | ![](https://github.com/Milad-Akarie/smooth_page_indicator/blob/master/demo/custimizable-1.gif?raw=true) |
| Customizable demo-2 | ![](https://github.com/Milad-Akarie/smooth_page_indicator/blob/master/demo/customizable-2.gif?raw=true) |
| Customizable demo-3 | ![](https://github.com/Milad-Akarie/smooth_page_indicator/blob/master/demo/customizable-3.gif?raw=true) |
| Customizable demo-4 | ![](https://github.com/Milad-Akarie/smooth_page_indicator/blob/master/demo/customizable-4.gif?raw=true) |

### Usage
---
`SmoothPageIndicator` uses the PageController's scroll offset to animate the active dot.

```dart
SmoothPageIndicator(
controller: controller, // PageController
count: 6,
effect: WormEffect(), // your preferred effect
onDotClicked: (index){

}
)

```

### Usage without a PageController
---
Unlike `SmoothPageIndicator `, `AnimatedSmoothIndicator` is self animated and all it needs is the
active index.

```dart
AnimatedSmoothIndicator(
activeIndex: yourActiveIndex,
count: 6,
effect: WormEffect(),
)

```

### Customization


---

You can customize direction, width, height, radius, spacing, paint style, color and more...

```dart
SmoothPageIndicator(
controller: controller,
count: 6,
axisDirection: Axis.vertical,
effect: SlideEffect(
spacing: 8.0,
radius: 4.0,
dotWidth: 24.0,
dotHeight: 16.0,
paintStyle: PaintingStyle.stroke,
strokeWidth: 1.5,
dotColor: Colors.grey,
activeDotColor: Colors.indigo
),
)

```

### RTL Support
---

Smooth page indicator will inherit directionality from its ancestors unless you specify a
directionality by passing it directly to the widget or wrapping the Indicator with a Directionality
widget from the flutter package.

```dart
SmoothPageIndicator(
controller: controller, // PageController
count: 6,
// forcing the indicator to use a specific direction
textDirection: TextDirection.rtl
effect: WormEffect(),
);

```

![](https://github.com/Milad-Akarie/smooth_page_indicator/blob/master/demo/smooth_page_indicator_demo_3.gif?raw=true)

### Support the Library

You can support the library by liking it on pub, staring in on Github and reporting any bugs you
encounter.