我正在尝试使用颤振包模态底页重新创建此动画。我可以重现拖动动画,但我不知道如何在拖动容器上同时使用物理和动画控制器,所以这是我的解决方案:
Positioned(
bottom: 5,left: 5,right: 5,
child: NotificationListener<ScrollNotification>(
onNotification: (scroller) {
if(scroller.metrics.pixels > -20 && widget.isDismissble){
mounted = false;
startDownAnimation();
}
setState(() {
if(mounted){
_offset = widget.initHeight + (scroller.metrics.pixels / 2);
}
});
return false;
},
child: Container(
constraints: BoxConstraints(
maxHeight: maxY
),
height: _offset,
clipBehavior: Clip.antiAlias,
decoration: const BoxDecoration(
borderRadius: BorderRadius.only(topLeft: Radius.circular(20),topRight: Radius.circular(20),bottomLeft: Radius.circular(50),bottomRight: Radius.circular(50)),
color: Colors.white),
child: SingleChildScrollView(
physics: const CustomPhysic(
parent: AlwaysScrollableScrollPhysics()),
controller: scrollController,child: Center(
child: Placeholder(),
),)),
),
)
这是应该如何完成的视频:
问题是占位符以更大的速度沿着阻力移动。