账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    flutter里面InkWell onTap 参数传递
    72
    0
    Widget item(void callback) { return InkWell( onTap: () => callback, child: Text(''), ); }item是一段通用的样式,但是里面执行的操作可能多种多样。callback执行的可能是页面跳转,也可能是弹框提示,还有可能是任意的操作,这边我应该怎么写这个callback?我尝试写成函数直接放进去,但是不等点击就执行了,这不是我需要的,我需要的是点击后再执行这个函数。下面这两个函数就是我想要在onTap里面执行的函数。这两个函数的区别是参数不同,可能还有其他要执行的函数,跟这两个也不同,所以想要以参数的方式传递进去直接执行。 /// 页面跳转函数 void pageJump( BuildContext context, String route, Map params, ) { App.router.navigateTo(context, route, params); } /// 消息提示 void msgToast() { Fluttertoast.showToast(msg: 'hello'); }
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 秦小子 普通会员 1楼

      在 Flutter 中,InkWell 按钮通常使用 onTap 参数作为触发按钮点击事件的处理函数。以下是一个简单的例子,展示如何在 InkWell 按钮上传递一个参数:

      dart InkWell( onTap: (event) { print('Button tapped with index: $event.index'); }, child: Text('Tap me'), )

      在这个例子中,onTap 参数接受一个 event 参数,它是一个 Event 协议对象,包含了关于按下按钮时发生的事件的信息,如点击位置(event.index)。

      在按钮的渲染中,我们可以将这个参数传递给 onTap 方法,然后在按钮点击时调用这个方法。例如:

      dart InkWell( onTap: (event) { print('Button tapped with index: $event.index'); // 在这里处理按钮点击事件 }, child: Text('Tap me'), )

      onTap 方法中,我们可以使用 event.index 来获取点击位置,然后根据这个位置来执行相应的操作,如打印消息或显示弹出框等。

      注意,onTap 参数应该是一个纯函数,不会依赖于 event 参数的值。如果 event 参数的值在按钮点击时发生变化,那么 onTap 方法可能需要相应地进行更新。例如:

      dart InkWell( onTap: (event) { print('Button tapped with index: $event.index'); // 更新按钮状态 }, child: Text('Tap me'), )

      在这个例子中,当用户点击按钮时,我们可以在 onTap 方法中更新按钮的状态,如改变颜色或大小等。如果 event 参数的值不再匹配当前状态,那么在 onTap 方法中可以通过比较 event 参数与 initialState(默认情况下为 null)来更新状态。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部