Flutter:小部件不是“ObstructingPreferredSizeWidget”类型的子类型
Posted
技术标签:
【中文标题】Flutter:小部件不是“ObstructingPreferredSizeWidget”类型的子类型【英文标题】:Flutter: Widget is not a subtype of type 'ObstructingPreferredSizeWidget' 【发布时间】:2020-08-31 06:21:49 【问题描述】:我正在尝试将我的 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);
但是在尝试运行我的颤振应用时出现以下错误。
type 'NavigationAppBar' is not a subtype of type 'ObstructingPreferredSizeWidget'
我该如何解决这个问题?感谢您提供任何帮助。
【问题讨论】:
【参考方案1】:您是否尝试在代码的所有适用位置将 NavigationAppBar 替换为 PreferredSizeWidget?这对我有帮助。
我的问题有一点不同,因为我必须用 PreferredSizeWidget 替换 AppBar(不是 NavigationAppBar)。
这可能与 Flutter 最新版本的一些变化有关。
【讨论】:
以上是关于Flutter:小部件不是“ObstructingPreferredSizeWidget”类型的子类型的主要内容,如果未能解决你的问题,请参考以下文章
iOS 和 Android Flutter 小部件是不是也适用于 Flutter Web(PWA)
Flutter:在浮动操作按钮中使用 appBar 小部件而不是 appBar?
“ValueNotifier”+“ValueListenableBuilder”是不是适用于 Flutter 中的“许多”小部件?