resolve method

FlyoutPlacementMode resolve(
  1. TextDirection direction
)

Resolves this placement with the current text direction

Basic usage:

controller.showFlyout(
  placementMode: FlyoutPlacementMode.bottomLeft.resolve(Directionality.of(context)),
);

See also:

Implementation

FlyoutPlacementMode resolve(TextDirection direction) {
  assert(
    this != FlyoutPlacementMode.auto,
    'Can not resolve directionality of an auto placement',
  );
  final isRtl = direction == TextDirection.rtl;

  switch (this) {
    case FlyoutPlacementMode.bottomCenter:
    case FlyoutPlacementMode.topCenter:
      return this;
    case FlyoutPlacementMode.bottomLeft:
      return isRtl ? FlyoutPlacementMode.bottomRight : this;
    case FlyoutPlacementMode.topLeft:
      return isRtl ? FlyoutPlacementMode.topRight : this;
    case FlyoutPlacementMode.left:
      return isRtl ? FlyoutPlacementMode.right : this;
    case FlyoutPlacementMode.bottomRight:
      return isRtl ? FlyoutPlacementMode.bottomLeft : this;
    case FlyoutPlacementMode.topRight:
      return isRtl ? FlyoutPlacementMode.topLeft : this;
    case FlyoutPlacementMode.right:
      return isRtl ? FlyoutPlacementMode.left : this;
    case FlyoutPlacementMode.auto:
    default:
      return this;
  }
}