directional_rotation 1.0.0
directional_rotation: ^1.0.0 copied to clipboard

A widget that implicitly rotates its child to the provided angle in the direction allowed by the constraints: closest, furthest, clockwise, or counter-clockwise.

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(),
);
0
likes
130
pub points
18%
popularity

Publisher

jamesalex.dev

A widget that implicitly rotates its child to the provided angle in the direction allowed by the constraints: closest, furthest, clockwise, or counter-clockwise.

Repository (GitHub)
View/report issues

Documentation

API reference

License

BSD (LICENSE)

Dependencies

flutter

More

Packages that depend on directional_rotation