如果我在下面的类中将FloatingActionButton初始化为“ incrementWidgetButton”
Widget incrementWidgetButton = FloatingActionButton(
onPressed: _incrementCounter,// why this error, only static member can be accessed
tooltip: 'Increment',
child: Icon(Icons.add),
);
然后在我的列小部件中调用该按钮小部件,如下所示
floatingActionButton: incrementWidgetButton
答案 0 :(得分:0)
出现错误only static member can be accessed
的原因是,当使用所有属性初始化该类时,它不知道方法_incrementCounter
。
您可以通过创建一个返回FloatingActionButton
的函数来解决此问题:
Widget incrementWidgetButton() => FloatingActionButton(
onPressed: _incrementCounter,
tooltip: 'Increment',
child: Icon(Icons.add),
);
之后,将其添加到应用中,如下所示:
floatingActionButton: incrementWidgetButton()
答案 1 :(得分:0)
如其所言
在初始化器中只能访问静态成员
说明自己。
想法是初始化程序在构造函数被调用之前执行,因此程序尚不知道您定义的方法。
所以您可以同时使用三件事。
使您的方法静态
直接在scaffold属性本身中定义floatActionButton。
执行@fayeed告诉的事情。