Flutter CustomScrollView 中 Stepper 上方的空白

b4s*_*sti 1 flutter flutter-layout

我目前正在开发一个在 CustomScrollView 中包含 Flutter Stepper 的屏幕。有一个 SliverAppBar 和 Stepper 包装在 SliverToBoxAdapter 和 Padding 中。不幸的是,步进器上方有一个空白区域,似乎不属于 Padding 或 Box Adapter。如果我将步进器添加到普通支架中,则该空间不可见。请参阅随附的屏幕截图。有谁知道如何解决这个问题?提前致谢!

这是代码:

@override
  Widget build(BuildContext context) {
    return Scaffold(
      body: CustomScrollView(
        slivers: [
          SliverAppBar(
            pinned: true,
            snap: false,
            floating: false,
            automaticallyImplyLeading: false,
            expandedHeight: 250,
            shape: RoundedRectangleBorder(borderRadius: BorderRadius.only(bottomLeft: Radius.circular(20), bottomRight: Radius.circular(20))),
            flexibleSpace: FlexibleSpaceBar(...),
          ),
          SliverPadding(
            padding: const EdgeInsets.all(10),
            sliver: SliverToBoxAdapter(
              child: Stepper(...),
            ),
          )
        ],
      ),
    );
  }
Run Code Online (Sandbox Code Playgroud)

这是一些屏幕截图:

屏幕布局

带有调试绘画的屏幕布局

b4s*_*sti 6

我在另一个线程中读到了这一点,只是使用 ListView 而不是 Stepper。解决方案是用 MediaQuery.removePadding(...) 包装 Stepper 并将removeTop 属性设置为 true。

SliverPadding(
  padding: const EdgeInsets.all(10),
  sliver: SliverToBoxAdapter(
    child: MediaQuery.removePadding(
      context: context,
      removeTop: true,
      child: Stepper(...)
    )
  )
)
Run Code Online (Sandbox Code Playgroud)