fluttercandies / flutter_scrollview_observer

A widget for observing data related to the child widgets being displayed in a ScrollView. Maintainer: @LinXunFeng
https://pub.dev/packages/scrollview_observer
MIT License
440 stars 46 forks source link

SliverPersistentHeader遮挡 #15

Closed zyk-miao closed 1 year ago

zyk-miao commented 1 year ago

我的应用有 SliverAppBar,SliverPersistentHeader 我看示例有关于offset偏移SliverAppBar的 ,那么请问SliverPersistentHeader的有吗

LinXunFeng commented 1 year ago

一样支持的,你直接把 SliverAppBar 换 SliverPersistentHeader 就可以了

zyk-miao commented 1 year ago

SliverAppBar,SliverPersistentHeader 都存在也可以吗

LinXunFeng commented 1 year ago

你的场景是有多个可变大小的视图?

zyk-miao commented 1 year ago

就是一个CustomScrollView 的slivers里面放的一个SliverAppBar一个SliverPersistentHeader一个SliverList,我滚动的时候被SliverPersistentHeader遮住了

LinXunFeng commented 1 year ago

你说的这个问题似乎是 SliverPersistentHeader 这个部件的特性,不是该库的问题,你把与该库相关的代码移除掉看看有没有问题

zyk-miao commented 1 year ago

我的意思是jumpto的offset可以偏移SliverAppBar,那么可以能否同时偏移SliverAppBar和SliverPersistentHeader吗

LinXunFeng commented 1 year ago

你在调用 animateTo 时在 offset 回调内返回 SliverAppBarSliverPersistentHeader 的高度即可

observerController.animateTo(
  sliverContext: _sliverListCtx,
  index: 8,
  duration: const Duration(milliseconds: 300),
  curve: Curves.easeInOut,
  offset: (offset) {
    return ObserverUtils.calcPersistentHeaderExtent(
          key: appBarKey,
          offset: offset,
        ) +
        ObserverUtils.calcPersistentHeaderExtent(
          key: persistentHeaderKey,
          offset: offset,
        );
  },
);
zyk-miao commented 1 year ago

好的好的 谢谢您~