向下滚动后,如何保持“ SliverPersistentHeader”固定在顶部,直到到达“ SliverList”项之一?

时间:2020-02-08 08:11:28

标签: android flutter flutter-layout flutter-animation flutter-sliver

我将SliverPersistentHeader与CustomScrollView中的SliverList一起使用。我不希望我的SliverPersistentHeader下降到达到SliverList的第一项(索引:0)。即使我位于sliverlist的索引50,当我向下滚动时,标题也会下降。有什么捷径可实现吗?

这就是我得到的== >> https://i.imgur.com/yl48Kx2.gif

class Home extends StatelessWidget {
  @override
  Widget build(BuildContext context) {

    return SafeArea(
      child: Material(
        child: CustomScrollView(
          slivers: [
            SliverPersistentHeader(
              delegate: MySliverAppBar(expandedHeight: 250),
              pinned: true,
              floating: true,
            ),
            SliverSafeArea(
              sliver: SliverAppBar(
                pinned: true,
                backgroundColor: Color(0xffA2B8A1),
              ),
            ),
            SliverList(
              delegate: SliverChildBuilderDelegate(
                (_, index) => ListTile(
                  title: Text("Index: $index"),
                ),
              ),
            )
          ],
        ),
      ),
    );
  }
}

2 个答案:

答案 0 :(得分:1)

尝试将pinned设置为true,并保持floatingfalse。 这是每个人的工作。

浮动:标头是否应立即增长 如果用户反转滚动方向,则再次输入。

固定:是否将标题粘贴到 视口达到最小尺寸后。

答案 1 :(得分:0)

只需将float设置为false。否则,请上传您的AppBar类