Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 颤振覆盖可见标志_Flutter_Dart - Fatal编程技术网

Flutter 颤振覆盖可见标志

Flutter 颤振覆盖可见标志,flutter,dart,Flutter,Dart,我创建了一个无状态小部件,它由一个图标和两个堆叠的按钮组成 我使用两种方法来指定按钮的标签和可见性。 我已经成功地覆盖了子类中标签的方法,但是由于某种原因,可见性是从超类调用的 此外,在子类中,我在shouldShowFirstButton()上收到一个“声明未引用”警告 任何帮助都将不胜感激。谢谢 重写子类中的属性: @override String firstButtonTitleForStatus(UserClassStatus status) { return "

我创建了一个无状态小部件,它由一个图标和两个堆叠的按钮组成

我使用两种方法来指定按钮的标签和可见性。 我已经成功地覆盖了子类中标签的方法,但是由于某种原因,可见性是从超类调用的

此外,在子类中,我在shouldShowFirstButton()上收到一个“声明未引用”警告

任何帮助都将不胜感激。谢谢

重写子类中的属性:

@override
  String firstButtonTitleForStatus(UserClassStatus status) {
      return "someOverridenLabel";  // this one is called properly
    }

    @override
    bool shouldShowFirstButton() {
      return true; // this is never called (only the one from the super class)
    }
超级类的标签/可见性方法:

bool shouldShowFirstButton() {
   return false;
}

String firstButtonTitleForStatus(UserClassStatus status) {
    switch (status) {
      case UserClassStatus.unknown: ....
    return "Some super string";
}
超级类的构建方法:

@override
  Widget build(BuildContext context) {
    UserClassStatus status = someUserStatus;
    return Row(
      children: <Widget>[
        Center(child: classStatusIcon(status)),
        Padding(
            padding: const EdgeInsets.fromLTRB(8, 8, 8, 8),
            child: Container(
              width: 100,
              child: Column(
                crossAxisAlignment: CrossAxisAlignment.stretch,
                children: <Widget>[
                  Visibility(
                    maintainSize: false,
                    visible: shouldShowFirstButton(),
                    child: MyFlatButton(
                        title: firstButtonTitleForStatus(status),
                        onPressed: () async {
                          handleFirstButtonPressed(
                              lesson, user, status, context);
                        }),
                  ),
                  Visibility(
                    maintainSize: false,
                    visible: shouldShowSecondButton(),
                    child: MyFlatButton(
                        title: secondButtonTitleForStatus(status),
                        onPressed: () async {
                          handleSecondButtonPressed(
                              lesson, user, status, context);
                        }),
                  ),
                ],
              ),
            ))
      ],
    );
  }
}
@覆盖
小部件构建(构建上下文){
UserClassStatus状态=someUserStatus;
返回行(
儿童:[
中心(子:类状态图标(状态)),
填充物(
填充:LTRB(8,8,8,8)中的常量边集,
子:容器(
宽度:100,
子:列(
crossAxisAlignment:crossAxisAlignment.stretch,
儿童:[
可见度(
大小:false,
可见:shouldShowFirstButton(),
孩子:我的扁平按钮(
标题:firstButtonTitleForStatus(状态),
onPressed:()异步{
把手第一个按钮按下(
课程、用户、状态、上下文);
}),
),
可见度(
大小:false,
可见:shouldShowSecondButton(),
孩子:我的扁平按钮(
标题:第二个按钮(状态),
onPressed:()异步{
无手柄按钮按下(
课程、用户、状态、上下文);
}),
),
],
),
))
],
);
}
}

清理、android studio重启、计算机重启。瞧

清理、android studio重启、计算机重启。瞧

请提供一个。一些清理和android studio以及计算机在它开始工作后重新启动…请提供一个。一些清理和android studio以及计算机在它开始工作后重新启动。。。