android - 如何在向下滚动后到达 “SliverPersistentHeader” 的第一项之前将 “SliverList” 固定在顶部?

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

我在 CustomScrollView 中使用 SliverPersistentHeader 和 SliverList。在到达 SliverList 的第一项(索引:0)之前,我不希望我的 SliverPersistentHeader 下降。即使我在 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"),
                ),
              ),
            )
          ],
        ),
      ),
    );
  }
}

最佳答案

尝试将 pinned 设置为 true 并将 floating 设置为 false。 这是每个人所做的。

float :标题是否应立即增长 如果用户反转滚动方向,则会再次出现。

Pinned:是否将页眉贴在开头 视口(viewport)一旦达到其最小尺寸。

关于android - 如何在向下滚动后到达 “SliverPersistentHeader” 的第一项之前将 “SliverList” 固定在顶部?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60125051/

相关文章:

android - 从我在 Android 上的应用程序通过 whatsapp 共享 pdf 文件

android - 更改首选项摘要

regex - 如何在Flutter中根据指定的关键字拆分字符串?

dart - 正在重新创建 Flutter BLoC

dart - 如何居中ListView?

flutter - 在 flutter 中更新现有 StatefulWidget 类的小部件

android - 如何让 Play 游戏服务在启动时不自动登录?

java - 放入完整英语词典的数据结构,以便从 Android 中的 String 快速返回所有可能的单词完成

flutter - Flutter:如何在出现已访问过的页面时始终触发功能

flutter - 在 Flutter 中创建一个带有图像的按钮?