Flutter -如何滚动到SliverPersistentHeader位置?

1yjd4xko  于 2023-02-16  发布在  Flutter
关注(0)|答案(1)|浏览(266)
CustomScrollView(
     SliverToBoxAdapter(), // firstBox
     SliverPersistentHeader(pinned:true),
     SliverToBoxAdapter(), // secondBox
)

我在这个页面上有一个按钮,当我点击这个按钮时,如何让SliverPersistentHeader以编程方式滚动到顶部?
补充:firstBox的高度不确定。

4nkexdtk

4nkexdtk1#

初始化小部件中的GlobalKey。

final GlobalKey globalKey = GlobalKey();

然后将其传递到要滚动到的小部件:

CustomScrollView(
   slivers: [
     SliverToBoxAdapter(), // firstBox
     SliverPersistentHeader(pinned: true, delegate: null,),
     SliverToBoxAdapter(
       key: globalKey,
     ),
   ],
 )

然后,Pressed上的按钮应如下所示:

onPressed: () {
            Scrollable.ensureVisible(
            globalKey.currentContext!,
            duration: const Duration(seconds: 1),
            );
        },

相关问题