size_fit.dart 891 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import 'package:flutter/material.dart';
  2. extension IntFit on int{
  3. double get px {
  4. return SizeFit.setPx(toDouble());
  5. }
  6. double get rpx {
  7. return SizeFit.setRpx(toDouble());
  8. }
  9. }
  10. extension DoubleFit on double{
  11. double get px{
  12. return SizeFit.setPx(this);
  13. }
  14. double get rpx {
  15. return SizeFit.setRpx(this);
  16. }
  17. }
  18. class SizeFit {
  19. static MediaQueryData? _mediaQueryData;
  20. static double? screenWidth,screenHeight,rpx,px;
  21. static void initialize(BuildContext context,{double standardWidth = 750}){
  22. _mediaQueryData = MediaQuery.of(context);
  23. screenWidth = _mediaQueryData!.size.width;
  24. screenHeight = _mediaQueryData!.size.height;
  25. rpx = screenWidth!/standardWidth;
  26. px = screenWidth!/standardWidth*2;
  27. }
  28. static double setPx(double size){
  29. return SizeFit.rpx!*size*2;
  30. }
  31. static double setRpx(double size){
  32. return SizeFit.px!*size/2;
  33. }
  34. }