ui_helper.dart 746 B

1234567891011121314151617181920212223242526272829
  1. import 'package:flutter/widgets.dart';
  2. class UIHelper {
  3. static Rect findGlobalRect(GlobalKey key) {
  4. RenderBox renderObject = key.currentContext?.findRenderObject();
  5. if (renderObject == null) {
  6. return null;
  7. }
  8. var globalOffset = renderObject?.localToGlobal(Offset.zero);
  9. if (globalOffset == null) {
  10. return null;
  11. }
  12. var bounds = renderObject.paintBounds;
  13. bounds = bounds.translate(globalOffset.dx, globalOffset.dy);
  14. return bounds;
  15. }
  16. static Offset globalOffsetToLocal(GlobalKey key, Offset offsetGlobal) {
  17. RenderBox renderObject = key.currentContext?.findRenderObject();
  18. if (renderObject == null) {
  19. return null;
  20. }
  21. return renderObject.globalToLocal(offsetGlobal);
  22. }
  23. }