我实现了一个 SliverStickyHeader,它在我的
CustomScrollView
中工作得很好。我只有一个问题:
我的粘性标题基本上是
Container
和 borderRadius
。现在我希望我的内容隐藏在那个条子后面,这样只有脚手架背景可见。这是用于澄清的图像:
如您所见,白色容器在蓝色 SliverStickyHeader 后面可见。
我被困在这里,不知道这是否可能。为每一个帮助感到高兴,即使它很糟糕:D很乐意让它发挥作用。
将我的 Sliver 内容隐藏在标题后面。这就是目标。
如果您需要更多信息,请告诉我。
将其添加到
delegate
中对我有用:
class WishlistSliverPersistentHeaderDelegate
extends SliverPersistentHeaderDelegate {
...
WishlistSliverPersistentHeaderDelegate({
...
});
@override
Widget build(
BuildContext context,
double shrinkOffset,
bool overlapsContent,
) {
final t = shrinkOffset / (maxExtent);
final collapsedOffset = ui.lerpDouble(0, 1, t)!;
final collapsedOffsetSafe = collapsedOffset.safeOpacity;
return Column(
mainAxisAlignment: MainAxisAlignment.end,
children: [
Expanded(
child: Stack(
alignment: Alignment.topCenter,
children: [
_buildHeader(context, t),
...
_builderBorderRadius(context),
],
),
),
],
);
}
Positioned _builderBorderRadius(BuildContext context) {
return Positioned(
bottom: 0,
left: 0,
right: 0,
child: Container(
height: 30,
decoration: BoxDecoration(
color: whiteAdaptive(context),
borderRadius: const BorderRadius.only(
topLeft: Radius.circular(30),
topRight: Radius.circular(30),
),
),
),
);
}