Flutter:在浮动操作按钮中使用 appBar 小部件而不是 appBar?

Posted

技术标签:

【中文标题】Flutter:在浮动操作按钮中使用 appBar 小部件而不是 appBar?【英文标题】:Flutter: Use appBar Widget in Floating Action Button instead of the appBar? 【发布时间】:2021-06-12 14:04:27 【问题描述】:

这是我在 appBar 中使用的小部件;

 appBar: AppBar(actions: <Widget>[myAppBarIcon()],)

以及小部件本身的代码;

Widget myAppBarIcon() 
   return ValueListenableBuilder(
    builder: (BuildContext context, int newNotificationCounterValue,
        Widget child) 
        return  newNotificationCounterValue == 0? Container(): Stack(
        children: [
          Icon(
            Icons.notifications,
            color: Colors.white,
            size: 30,
          ),
          Container(
            width: 30,
            height: 30,                
            child: Container(
              width: 15,
              height: 15,
              decoration: BoxDecoration(
                  shape: BoxShape.circle,
                  color: Color(0xffc32c37),
                  border: Border.all(color: Colors.white, width: 1)),
              child: Padding(
                padding: const EdgeInsets.all(0.0),
                child: Text(
                  newNotificationCounterValue.toString(),
                ),
              ),
            ),
          ),
        ],
      );
    ,
    valueListenable: notificationCounterValueNotifer,
  );
 

但我现在想在浮动操作按钮而不是 appBar 中使用小部件。所以这就是我尝试过的;

 Scaffold(
      body: FoldableSidebarBuilder(
        drawerBackgroundColor: Colors.black45,
        drawer: CustomDrawer(closeDrawer: ()
          setState(() 
            drawerStatus = FSBStatus.FSB_CLOSE;
          );
        ,),
        screenContents: mainStage(),
        status: drawerStatus,
      ),
      floatingActionButton: Stack(
        children: <Widget>[
          Positioned(
            bottom:140,
            left: 17,
            child: FloatingActionButton(
                mini: true,
                heroTag: null,
                backgroundColor: Colors.black12,
                child: myAppBarIcon()

            ),
          ),         
        ],
      ),
    ),

虽然没有出现错误,但 myAppBarIcon 并没有出现在构建中。我哪里做错了?

【问题讨论】:

请分享您拥有此 appBar 的脚手架/容器代码。 这是脚手架; 【参考方案1】:

事实证明它确实有效。起初我不这么认为,直到我意识到我需要在 FCM 通知出现之前收到它。这条线是原因。;

return  newNotificationCounterValue == 0? Container() 

所以我要在容器中放一个空的通知图标。

【讨论】:

以上是关于Flutter:在浮动操作按钮中使用 appBar 小部件而不是 appBar?的主要内容,如果未能解决你的问题,请参考以下文章

将 Appbar 上的操作按钮用作选项卡。(Flutter)

在 Flutter 中定位两个浮动操作按钮

Flutter:向图像添加浮动操作按钮

如何在flutter中停用或覆盖appBar中的箭头后退按钮?

Flutter:如何从浮动操作按钮调用小部件状态类的方法

按下 Flutter 的浮动操作按钮的简单对话框