SliverOverlapAbsorber
和 SliverOverlapInjector
是 Flutter 中用于处理 Sliver 重叠的两个组件。它们通常一起使用,用于在 CustomScrollView 中处理 Sliver 之间的重叠和相互影响。
SliverOverlapAbsorber
SliverOverlapAbsorber
的主要目的是吸收自身与其它处于同一 Viewport 中的与它在 CustomScrollView 中排列的 Sliver 发生的重叠。在这个过程中,它会计算重叠的大小并将它传递给 SliverOverlapInjector
,从而影响后者的布局。
SliverOverlapInjector
SliverOverlapInjector
用于注入 SliverOverlapAbsorber
中计算得到的重叠信息,并影响 CustomScrollView 中排列的 Sliver 的布局。
总结
SliverOverlapAbsorber
用于吸收其他 Sliver 的重叠信息,SliverOverlapInjector
用于注入 SliverOverlapAbsorber
中计算得到的重叠信息。
一般情况下,它们一起使用,以解决 CustomScrollView 中 Sliver 之间的重叠问题,特别是在有多个可滚动的区域时。
Reference
- 引自 ChatGPT 回复,出处不详。