在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,
)