Flutter:小部件不是'ObstructingPreferredSizeWidget'类型的子类型

时间:2020-05-14 16:08:01

标签: flutter dart widget flutter-layout flutter-dependencies

我正在尝试将AppBar存储在变量中以使用多个位置

我的main.dart文件包含-

final PreferredSizeWidget appBar = NavigationAppBar(_actionCall)

并且navigation_app_bar包含-

class NavigationAppBar extends StatelessWidget with PreferredSizeWidget {
  final Function actionCall;

  NavigationAppBar(this.actionCall);

  @override
  Widget build(BuildContext context) {
    return Platform.isIOS ? 
    CupertinoNavigationBar(
      middle: Text(
        'ABC'
      ),
      trailing: Row(
        mainAxisSize: MainAxisSize.min,
        children: <Widget>[
            GestureDetector(
              child: Icon(CupertinoIcons.add),
              onTap: () => actionCall,
            )
        ],
      ),
    ) : 
    AppBar(
      title: Text('ABC'),
      centerTitle: false,
      actions: <Widget>[
        IconButton(
          icon: Icon(Icons.add),
          onPressed: () => actionCall,
        )
      ],
    );
  }

  @override
  Size get preferredSize => Size.fromHeight(kToolbarHeight);
}

但是当尝试运行我的flutter应用程序时,出现以下错误。

type 'NavigationAppBar' is not a subtype of type 'ObstructingPreferredSizeWidget'

我该如何解决这个问题?任何帮助都将受到赞赏。

1 个答案:

答案 0 :(得分:0)

您是否尝试过在代码中所有适用的位置将NavigationAppBar替换为PreferredSizeWidget?这对我有帮助。

我的问题有很小的不同,因为我不得不用PreferredSizeWidget替换AppBar(而不是NavigationAppBar)。

这可能与最新Flutter版本中的某些更改有关。