directional_rotation
A widget that implicitly rotates its child to the provided angle in the direction allowed by the constraints: closest, furthest, clockwise, or counter-clockwise.
Usage
import 'package:directional_rotation/directional_rotation.dart';
DirectionalRotation accepts an angle, in degrees by default, and implicitly
rotates its child to the angle whenever the angle is updated.
/// Whenever [angle] is modified, the [DirectionalRotation]
/// will rotate its child to the new [angle].
var angle = 180.0;
DirectionalRotation(
angle: angle,
child: MyWidget(),
);
Scale
The angle can be normalized to any scale. By default, angle equates to
degrees (a scale of 360.)
/// This [DirectionalRotation] is normalized to a `0` to `1` scale and currently
/// rotated to `0.5`, which is the equivalent of `180` on the default scale.
DirectionalRotation(
angle: 0.5,
scale: 1.0,
child: MyWidget(),
);
Duration
With the default settings, the duration of each animation will be factored
by the difference between the old angle and the new angle, whenever angle
is updated. In this case, duration will equate to one whole rotation.
factorDuration can be set to false to have each animation last the entire
duration.
duration defaults to 1 second.
/// If [angle] was changed from `0` to `180`, the duration of the
/// animation would be factored by `0.5` and last `500` milliseconds.
DirectionalRotation(
angle: 180,
duration: Duration(seconds: 1),
child: MyWidget(),
);
/// In this case, where [factorDuration] is `false`, the duration
/// will last for the entire second.
DirectionalRotation(
angle: 180,
duration: Duration(seconds: 1),
factorDuration: false,
child: MyWidget(),
);
Directionality
By default the child will rotate in the direction that has the shorest span
to the new angle from the current angle, whenever angle is updated.
Direction can be set to change how the direction of the rotation is
determined.
/// This [DirectionalRotation] will only rotate its child
/// in a clockwise direction.
DirectionalRotation(
angle: 0,
direction: RotationDirection.clockwise,
child: MyWidget(),
);
/// This [DirectionalRotation] will only rotate its child
/// in a counter-clockwise direction.
DirectionalRotation(
angle: 0,
direction: RotationDirection.counterClockwise,
child: MyWidget(),
);
/// This [DirectionalRotation] will rotate its child in the direction with
/// the shortest span from the current angle to the new angle.
DirectionalRotation(
angle: 0,
direction: RotationDirection.closest,
child: MyWidget(),
);
/// This [DirectionalRotation] will rotate its child in the direction with
/// the longest span from the current angle to the new angle.
DirectionalRotation(
angle: 0,
direction: RotationDirection.furthest,
child: MyWidget(),
);
Libraries
- directional_rotation
- A widget that implicitly rotates its child to the provided angle in the direction allowed by the constraints: closest, furthest, clockwise, or counter-clockwise.