在为FloatingActionButton按下时显示在初始化程序中只能访问静态成员

时间:2019-07-16 19:18:54

标签: flutter dart flutter-layout

如果我在下面的类中将FloatingActionButton初始化为“ incrementWidgetButton”

Widget incrementWidgetButton = FloatingActionButton(
    onPressed: _incrementCounter,// why this error, only static member can be accessed
    tooltip: 'Increment',
    child: Icon(Icons.add),
  );

然后在我的列小部件中调用该按钮小部件,如下所示

    floatingActionButton: incrementWidgetButton

The code error image

2 个答案:

答案 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)

如其所言

  

在初始化器中只能访问静态成员

说明自己。

想法是初始化程序在构造函数被调用之前执行,因此程序尚不知道您定义的方法。

所以您可以同时使用三件事。

  1. 使您的方法静态

  2. 直接在scaffold属性本身中定义floatActionButton。

  3. 执行@fayeed告诉的事情。