@override
Widget build(BuildContext context) {
final mediaQuery = MediaQuery.of(context);
final isLandscape = mediaQuery.orientation == Orientation.landscape;
final appBar = Platform.isIOS
? CupertinoNavigationBar(
middle: Text(
'Personal Expenses',
),
trailing: Row(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
GestureDetector(
child: Icon(CupertinoIcons.add),
onTap: () => _startAddNewTransaction(context),
),
],
),
)
: AppBar(
title: Text(
'Personal Expenses',
),
actions: <Widget>[
IconButton(
icon: Icon(Icons.add),
onPressed: () => _startAddNewTransaction(context),
),
],
);
没有为类型“Widget”定义getter“preferredSize”。
final txListWidget = Container(
height: (mediaQuery.size.height -
appBar.preferredSize.height -
mediaQuery.padding.top) *
0.7,
参数类型“Widget”不能分配给参数类型“ObstructingPreferredSizeWidget?”
return Platform.isIOS
? CupertinoPageScaffold(
child: pageBody,
navigationBar: appBar,
)
参数类型“Widget”无法分配给参数类型“PreferredSizeWidget?”
: Scaffold(
appBar: appBar,
body: pageBody,
5条答案
按热度按时间igsr9ssn1#
将代码更改为以下格式。
7qhs6swi2#
请使用变量appBar的数据类型
gwbalxhn3#
将
appbar
类型从PreferredSizeWidget
或Widget
更改为dynamic
slhcrj9b4#
将appbar的类型添加为dynamic。出现此错误是因为dart无法理解为cupertionoappwidget和appbar都定义了preferredsize类。
解决方案:最终动态appbar
5jdjgkvh5#
您的错误的完整解决方案