底部导航栏中的一个洞,里面有一个 fab - flutter

A hole in bottom nav bar with a fab inside it - flutter

使用 flutter,如何在底部导航栏中创建一个洞并将 fab 放入其中,如下图所示

我试过用填充包裹 fab,增加顶部填充以将其向下移动并增加缺口边距,但底部导航栏看起来不像我想要的那样。

FAb 代码:

Padding(
    padding: const EdgeInsets.only(top: 90),
    child: FloatingActionButton(...)
)

底部导航条码:

BottomAppBar(
    elevation: 0,
    color: Colors.transparent,
    shape: const CircularNotchedRectangle(),
    clipBehavior: Clip.antiAlias,
    notchMargin: 50.0,
    child: SizedBox(...)
)

这是我想要的样子

我正在使用 Stack 在 UI 上绘图。玩转小部件的大小、位置和颜色。

运行 在 dartPad

bottomNavigationBar: LayoutBuilder(
  builder: (context, constraints) => SizedBox(
    width: constraints.maxWidth,
    height: kToolbarHeight,
    child: Stack(
      children: [
        Positioned.fill(
          child: Container(
            color: Colors.white,
          ),
        ),

        /// middle fab
        Positioned(
          bottom: -20,
          top: -20,
          left: 0,
          right: 0,
          child: Container(
            height: kToolbarHeight * 1.5,
            width: kToolbarHeight * 1.5,
            decoration: BoxDecoration(
              color: Theme.of(context).scaffoldBackgroundColor,
              // Colors.deepPurple,

              shape: BoxShape.circle,
            ),
          ),
        ),

        Align(
          alignment: Alignment.center,
          child: Container(
            width: kToolbarHeight * .8,
            height: kToolbarHeight * .8,
            alignment: Alignment.center,
            decoration: const BoxDecoration(
              color: Colors.amber,
              shape: BoxShape.circle,
            ),
            child: const Text("A"),
          ),
        )
      ],
    ),
  ),
),