flutter block回调


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');
    }
)


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM