setDropdownPosition method

Offset setDropdownPosition({
  1. required bool isTop,
  2. required double sidePadding,
  3. required dynamic inputBox,
  4. required Offset inputPosition,
  5. required double actualBoxHeight,
})

Implementation

Offset setDropdownPosition(
    {required bool isTop,
    required double sidePadding,
    required dynamic inputBox,
    required Offset inputPosition,
    required double actualBoxHeight}) {
  double value = 0;

  switch (widget.dropdownAlign.toLowerCase()) {
    case 'left':
      value = 0;
      break;
    case 'right':
      value = inputBox.size.width -
          (widget.dropdownWidth + sidePadding) -
          widget.triangleBorder.width * 2;
      break;
    case 'center':
      value =
          (inputBox.size.width - (widget.dropdownWidth + sidePadding)) * 0.5 -
              widget.triangleBorder.width;
      break;
    default:
      throw 'type of dropdownAlign has to be String.(right, left, center)';
  }
  return Offset(
      inputPosition.dx + value,
      isTop
          ? inputPosition.dy + inputBox.size.height + widget.gap
          : inputPosition.dy - (widget.gap + actualBoxHeight));
}