首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Flutter:通知侦听器,如何使onNotification动态化

Flutter:通知侦听器,如何使onNotification动态化
EN

Stack Overflow用户
提问于 2019-11-10 21:37:50
回答 1查看 847关注 0票数 0

我是个飞镖新手,所以才会飘动。我就是这样使用NotificationListener的

代码语言:javascript
运行
复制
   String x = a; // or could be x=b, x=c, etc, comes as function parameter 
    return NotificationListener(
          onNotification: onNotificationHandler,
          child: new ListView.builder(
              scrollDirection: Axis.horizontal,
              shrinkWrap: true,
              physics: const BouncingScrollPhysics(),
               // other codes comes here

问题是,

我希望onNotification的值在变量x的值的基础上是动态的,有人能帮我吗?

EN

回答 1

Stack Overflow用户

发布于 2019-11-10 22:01:15

在Dart中,Function是一等公民,这意味着函数可以从方法返回。

然后,您可以创建一个方法,该方法以x作为参数,并返回一个NotificationListenerCallback类型的函数。返回的函数是所谓的Closure,这意味着它可以访问它的词法作用域(本例中为x)中的变量,即使它在外部执行也是如此。

在您的示例中,它可以是:

代码语言:javascript
运行
复制
    String x = a; // or could be x=b, x=c, etc, comes as function parameter 
    return NotificationListener(
      onNotification: _notificationHandler(x), // The return the appropriate function with x scoped to the function to be used later
      child: new ListView.builder(
      // other codes comes here

def _notificationHandler(String value) => (T notification) {
  // Note that the returned function has access to `value`
  // even if it will be executed elsewhere
  return (value == 'Hey); 
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58789207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档