在点击按钮之前执行的颤动代码
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在点击按钮之前执行的颤动代码相关的知识,希望对你有一定的参考价值。
我有一个ListTile(在抽屉里),点击它后,进入一个新的屏幕,在那个屏幕上,用户可以从一些(使用for循环)IconButtons(在ListView中)中选择,但是这个功能是当用户被发送到选择屏幕时(当他/她点击ListTile时)实际执行按钮时执行将被执行,因此该功能(顺便打开另一个屏幕)被执行相同的量在我的ListView中和单击它们之前有IconButtons的时间。
有关更多详细信息,请参阅源代码:
单击ListTile时:
setState(() {
goDownloads(files);
});
打开新屏幕的功能:
goDownloads(List<File> files) async {
for (int n = 0; n < files.length; n++) {
String url = files[n].path;
Widget container = new Container(
child: new Row(
children: <Widget>[
new IconButton(
onPressed: openBook(url),//This is the code that gets executed before it's supposed to
icon: new Icon(Icons.open_in_browser),
),
...
]
)
);
dlbooks.add(container);
}
setState(() {
Navigator.of(context).push(new MaterialPageRoute<Null>(
builder: (BuildContext context) {
return new Scaffold(
appBar: new AppBar(title: new Text('My Page')),
body: new Center(
child: new ListView(
children: dlbooks
),
),
);
},
));
});
}
我也有一个main.dart文件中的完整代码,虽然我不推荐它,因为它写得不好,我还是一个菜鸟。 https://pastebin.com/vZapvCKx先谢谢!
答案
此代码将函数传递给按下按钮时执行的onPressed
onPressed: () => openBook(url)
你的代码
onPressed: openBook(url)
执行openBook(url)
并将结果传递给onPressed
,以便在按下按钮时执行,这似乎不是你想要的。
以上是关于在点击按钮之前执行的颤动代码的主要内容,如果未能解决你的问题,请参考以下文章