Flutter 屏幕适配和宏定义

Flutter 屏幕适配

import 'dart:ui';
import 'package:flutter/material.dart';

// 尺寸相关的宏定义
class XMSizeMacro {
  /// 分辨率比例
  static final screen_dpr = window.devicePixelRatio;
  /// 屏幕逻辑宽度 - 例如iPhone6是 375
  static final screen_width = window.physicalSize.width/screen_dpr;
  /// 屏幕逻辑高度 - 例如iPhone6是 667
  static final screen_height = window.physicalSize.height/screen_dpr;
  /// 状态栏高度
  static final status_height = window.padding.top/screen_dpr;
  /// 适配屏幕,跟iPhone6的比例系数
  static final px = screen_width/375.0;
  /// 适配屏幕,一般都是iPhone6为标准的
  static double setPx(double size) {
    return size * px;
  }
}

// 对数字类型的屏幕适配扩展
extension NumFit on num {
  // 对double类型的数值进行屏幕适配
  double get px { // get方法不需要加()了。更方便
    return XMSizeMacro.setPx(this.toDouble());
  }
}

你可能感兴趣的:(Flutter 屏幕适配和宏定义)