flutter block回调
2022-04-24 本文已影响0人
LongFei_Brook
block回调在oc中很常见,到了flutter中仍然有block回调
自定义一个StatefulWidget PageTitle
无参数回调VoidCallback
VoidCallback onTap;
PageTitle({Key key,@required this.onTap}):super(key:key);
//在你需要点击的地方传入参数 比如InkWell的ontap事件
InkWell( onTap: ()=>widget.onTap; )
有参数回调ValueSetter 比如我要回调一个int变量
ValueSetter<int> onTap; PageTitle({Key key,@required this.onTap}):super(key:key);
//在你需要点击的地方传入参数 比如InkWell的ontap事件
InkWell( onTap: (){ widget.onTap(index);
//你的其他事件处理
)
自定义block 建议使用这种方法 这样参数可以设置多个
//注意 typedef 需要放在class外面
typedef IndexCallback = void Function(int index);
IndexCallback<int> onTap;
PageTitle({Key key,@required this.onTap}):super(key:key);
//在你需要点击的地方传入参数 比如InkWell的ontap事件
InkWell( onTap: (){ widget.onTap(index); //你的其他事件处理
)
使用
PageTitle( onTap:(index){print('$index');})