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');})
上一篇 下一篇

猜你喜欢

热点阅读