Flutter里扩展函数可以用简化代码写法,关键字为extension,伪代码写法如下:
extension 扩展类名 on 扩展类型 {
//扩展方法
}
在Flutter页面里实现控件间距会常用到SizedBox,可使用扩展函数封装来达到简化代码的目的,基本步骤如下:
1、创建num_extension.dart文件,扩展类名为SizedBox+类型Double+后缀Extension,代码如下:
import 'package:flutter/material.dart';extension SizedBoxDoubleExtension on double {SizedBox get width => SizedBox(width: this);SizedBox get height => SizedBox(height: this);SizedBox withHeight(double height) => SizedBox(width: this, height: height);
}
2、使用示例对照,节选代码如下:
///此为不使用扩展函数的写法Widget _buildRow() {return Row(children: [_buildText("1"),const SizedBox(width: 10,),_buildText("2"),const SizedBox(width: 10,),_buildText("3"),],);}///此为使用扩展函数的写法,要简洁些Widget _buildRowExtension() {return Row(children: [_buildText("1"),10.0.width,_buildText("2"),10.0.width,_buildText("3"),],);}Widget _buildText(String text) {return Text(text,style: const TextStyle(color: Colors.blue),);}