在我用PreferredSize包装PreferredSize子组件之后,appBar仍然无法工作,并显示:
The argument type 'Widget' can't be assigned to the parameter type 'PreferredSizeWidget?'.这是我的代码,它构建了appBar和颤振页面的主体:
@override
Widget build(BuildContext context) {
return SafeArea(child: Scaffold(
appBar: _buildAppBar(context),
body:_buildBody(context),
));
}这就是_buildAppBar的实现:
Widget _buildAppBar(BuildContext context) {
return PreferredSize(
child: Container(
padding: EdgeInsets.only(left: 8, right: 8, top: 0),
child: Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
ToolbarItemAlwaysOnTop(),
Expanded(child: Container()),
// ToolbarItemSponsor(),
ToolbarItemSettings(
onSettingsPageDismiss: () {
setState(() {});
},
),
],
),
),
preferredSize: Size.fromHeight(34),
);
}我该怎么做才能让它发挥作用?我已经阅读了这个问题,并建议扩展PreferredSizeWidget,我现在无法在我的代码中实现PreferredSizeWidget (我已经尝试过,但没有在这种情况下工作)。
发布于 2021-11-20 13:26:21
将_buildAppBar()的返回类型从Widget替换为PreferredSize
您可以从PreferredSize类中检查
class PreferredSize extends StatelessWidget implements PreferredSizeWidget
发布于 2021-11-20 13:34:00
只需使_buildAppBar(上下文)函数的返回类型返回preferredSize
https://stackoverflow.com/questions/70046177
复制相似问题