getPositionBottomLeft static method

Offset getPositionBottomLeft(
  1. GlobalKey<State<StatefulWidget>> parentKey,
  2. GlobalKey<State<StatefulWidget>> childKey
)

Implementation

static Offset getPositionBottomLeft(GlobalKey parentKey, GlobalKey childKey) {
  final parentBox = parentKey.currentContext!.findRenderObject() as RenderBox?;
  if (parentBox == null) {
    throw Exception();
  }
  final childBox = childKey.currentContext!.findRenderObject() as RenderBox?;
  if (childBox == null) {
    throw Exception();
  }

  final parentPosition = parentBox.localToGlobal(Offset.zero);
  final parentHeight = parentBox.size.height;

  final childPosition = childBox.localToGlobal(Offset.zero);
  final childHeight = childBox.size.height;

  final x = childPosition.dx - parentPosition.dx;
  final y = (childPosition.dy + childHeight - parentPosition.dy - parentHeight).abs();

  return Offset(x, y);
}