如何解决是否可以在颤振的 onTap GestureDetector 函数中获取额外信息
Flutter 对我来说很陌生,所以可能 Flutter 专家会将其视为一个非常基本的问题。 我有许多文本按钮,当它们被按下时,我想用相同的功能处理它们。 但该函数必须知道按下了哪个按钮。它可能是一个额外的参数,或者函数应该以某种方式检索按下按钮的 Widget。 我试过的相关代码如下所示。使用此代码,handledigit 中的参数 i 始终为 10。 这样做的正确方法是什么?
class MijnWidget extends StatelessWidget
{
void handledigit(i)
{
print(i.toString());
}
Widget build(BuildContext context)
{
int i;
Row row;
List<Widget> footerbuttons;
String str;
footerbuttons = new List<Widget>();
for (i=1; i<= 9; i++)
{
str = i.toString();
footerbuttons.add
(
GestureDetector
(
child:Text(str),onTap:() {handledigit(i);},)
);
}
row = Row(children: footerbuttons,mainAxisAlignment: MainAxisAlignment.spaceBetween);
// Here a MaterialApp with a Scaffold containg row is returned
}
}
解决方法
传递给 i
的所有 lambda 都引用同一个 final localI = i
,它在循环结束时为 9。如果您在循环中创建一个新变量 onTap
并在您的 Row(
children: List.generate(10,(index) =>
GestureDetector(
child: Text("$index"),onTap: () => handledigit(index),),)
回调中使用它,它应该可以工作。
最好避免可变变量并使用类似的东西:
loc
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。