flutter(dart)中的extension用法小解

631 阅读1分钟

在flutter中我们经常会用到flutter_screenutil(或者是flustars)这个插件来做屏幕的自适应,适配不同尺寸的手机屏幕。 但在使用中我们或许会遇到各种各样不够优雅的做法:

import 'package:flustars/flustars.dart';

/// 比如以下这种:
var width = ScreenUtil.getInstance().getWidth(width2);
var height = ScreenUtil.getInstance().getWidth(height2);
var fontSize = ScreenUtil.getInstance().getWidth(fontSize2);

这种情况下,我们可以对num类型进行拓展,从而获得一个比较优雅的做法:

import 'package:flustars/flustars.dart';

extension SizeExtension on num {
  double get w => ScreenUtil.getInstance().getWidth(this);

  double get h => ScreenUtil.getInstance().getHeight(this);

  double get sp => ScreenUtil.getInstance().getSp(this);
}

使用的时候:

Container(
  height: 20.0.h  // 直接在num类型上的拓展
  width: 20.0.w,
)