我是飞镖新手,因此扑扑。我正在这样使用NotificationListener
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
的值
有人可以帮我吗?
答案 0 :(得分:0)
在Dart中,Function
是一等公民,这意味着可以从方法中返回函数。
然后,您可以创建一个以x
作为参数并返回一个NotificationListenerCallback
函数的方法。返回的函数称为Closure
,这意味着即使在外部执行,也可以访问其词法范围内的变量(在这种情况下为x
)。
在您的示例中,它可以是:
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);
}