0

我目前正在处理一个在 CustomScrollView 中包含 Flutter Stepper 的屏幕。有一个 SliverAppBar 并且 Stepper 被包裹在一个 SliverToBoxAdapter 和一个 Padding 中。不幸的是,Stepper 上方有一个似乎不属于 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(...),
            ),
          )
        ],
      ),
    );
  }

这里有一些截图:

屏幕布局

带有调试绘制的屏幕布局

4

1 回答 1

0

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

SliverPadding(
  padding: const EdgeInsets.all(10),
  sliver: SliverToBoxAdapter(
    child: MediaQuery.removePadding(
      context: context,
      removeTop: true,
      child: Stepper(...)
    )
  )
)
于 2021-04-13T08:55:30.553 回答