如何解决如何从 RaisedButton onPressed 调用函数 - Flutter
我是 Flutter 新手,我有一个非常简单的问题,在过去的几天里一直困扰着我。我有这个简单的凸起按钮:
child: Column(
mainAxisSize: MainAxisSize.min,children: [
TextField(),RaisedButton(
child: Text("Clicou"),onpressed: () {
_changeText();
}),MyText(myText)
],)
在那里我调用了 onpressed
_changeText(),这是一个更改屏幕上标签的简单函数,但是检查我在最后使用 ()
调用我的方法。
嗯,我是从 YouTube 视频中学习到的,他们说我应该在没有 ()
的情况下通过我的方法,但是当我尝试这种方式时,按钮根本不起作用。
所以,我的问题实际上是:我应该如何在 onpressed
或任何其他事件监听器上调用方法?
import 'package:Flutter/cupertino.dart';
import 'package:Flutter/material.dart';
// entry point for the app,// the => operator is shorthand for {} when there is only one line of code
void main() => runApp(Root());
class Root extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MyApp();
}
}
// the root widget of our application
class MyApp extends StatefulWidget {
@override
State<StatefulWidget> createState() {
return MyAppState();
}
}
class MyAppState extends State<MyApp> {
String myText = "";
void _changeText() {
print("TESETSSS");
setState(() {
myText = "batman";
});
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text("Building layouts"),),body: Container(
padding: const EdgeInsets.all(15.0),margin: EdgeInsets.all(15.0),child: Column(
mainAxisSize: MainAxisSize.min,children: [
TextField(),RaisedButton(
child: Text("Clicou"),onpressed: () {
_changeText();
}),MyText(myText)
],))),);
}
}
class MyText extends StatelessWidget {
final String myText;
MyText(this.myText);
@override
Widget build(BuildContext context) {
return Text(myText);
}
}
解决方法
过了一段时间,我弄清楚出了什么问题。 在这段代码中,我创建了一个匿名函数,他们在其中调用了我的更改文本函数,因此引用什么也不做。
RaisedButton(
child: Text("Clicou"),onPressed: () {
_changeText();
}),
正确的做法是:
RaisedButton(
child: Text("Clicou"),onPressed: _changeText
),
在第二种情况下,我将“onPressed”引用到 _changeText; 就是这样,就像一个魅力。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。