Yoda Flutter plugin
Flutter widget that let you slice any kind of child widget in a matrix of tiles and animate them with different kind of ways. Currently with Explode, Vortex and Flakes. Works on all platforms.
Yoda Widget Properties
Yoda widget
**yodaEffect**
Animation effect to use (see below).**controller**
Animation controller.**duration**
Animation duration.**startWhenTapped**
Enable tap gesture to start animation.**animParameters**
Parameters used to animate tiles (see below).**child**
Whatever widget to slice.
YodaEffect enum
**Explosion**
**Vortex**
**Flakes**
AnimParameters properties
**yodaBarrier**
Define which edges are barraged (see below).**hTiles**
Number of horizontal tiles to divide the child widget.**vTiles**
Number of vertical tiles to divide the child widget.**fractionalCenter**
Default center where force is given when not tapping on it.**gravity**
Vertical force.**effectPower**
Effect strength.**blurPower**
Blur strength.**randomness**
Random strength.
YodaBarrier properties
**left**
Block tiles moving over the left edge.**right**
Block tiles moving over the right edge.**top**
Block tiles moving over the top edge.**bottom**
Block tiles moving over the bottom edge.
How to use
If you need to control the animation status:
YodaController _yodaControllerExplode;
@override
void initState() {
super.initState();
_yodaControllerExplode = YodaController()
..addStatusListener((status) {
if (status == AnimationStatus.completed) {
_yodaControllerExplode.reset();
}
});
}
YodaController accept start() and reset() methods.
Yoda(
yodaEffect: YodaEffect.Explosion,
controller: _yodaControllerExplode,
duration: Duration(milliseconds: 2500),
animParameters: AnimParameters(
yodaBarrier: YodaBarrier(bottom: true, left: true, right: true),
fractionalCenter: Offset(0.5, 1.0),
hTiles: 20,
vTiles: 20,
effectPower: 0.2,
blurPower: 5,
gravity: 0.1,
randomness: 30,
),
startWhenTapped: true,
child: SizedBox(
width: 250,
height: 180,
child: Image.asset('assets/dash.png', fit: BoxFit.fill)
)
)
TODO
- Find a better way to capture the widget
- When changing Yoda widget parameters, 2 hot reloads are needed to make it to work!