首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么PreferredSizeWidget在用PreferredSize包装后仍然不工作?

为什么PreferredSizeWidget在用PreferredSize包装后仍然不工作?
EN

Stack Overflow用户
提问于 2021-11-20 13:05:06
回答 2查看 316关注 0票数 1

在我用PreferredSize包装PreferredSize子组件之后,appBar仍然无法工作,并显示:

代码语言:javascript
复制
The argument type 'Widget' can't be assigned to the parameter type 'PreferredSizeWidget?'.

这是我的代码,它构建了appBar和颤振页面的主体:

代码语言:javascript
复制
@override
  Widget build(BuildContext context) {
    return SafeArea(child: Scaffold(
      appBar: _buildAppBar(context),
      body:_buildBody(context),
    ));
  }

这就是_buildAppBar的实现:

代码语言:javascript
复制
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 (我已经尝试过,但没有在这种情况下工作)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-11-20 13:26:21

_buildAppBar()的返回类型从Widget替换为PreferredSize

您可以从PreferredSize类中检查

class PreferredSize extends StatelessWidget implements PreferredSizeWidget

票数 1
EN

Stack Overflow用户

发布于 2021-11-20 13:34:00

只需使_buildAppBar(上下文)函数的返回类型返回preferredSize

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70046177

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档