我正在尝试将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'
我该如何解决这个问题?任何帮助都将受到赞赏。
答案 0 :(得分:0)
您是否尝试过在代码中所有适用的位置将NavigationAppBar替换为PreferredSizeWidget?这对我有帮助。
我的问题有很小的不同,因为我不得不用PreferredSizeWidget替换AppBar(而不是NavigationAppBar)。
这可能与最新Flutter版本中的某些更改有关。