1分钟
08 createBallisticSimulation-1
因为 createBallisticSimulation 是在 _handleDragCancel 和 _handleDragEnd 时触发的,其实就是停止触摸的时候,当 createBallisticSimulation 返回 null 时,Scrllable 将进入 IdleScrollActivity ,也就是停止滚动的状态。
如下图所示,完全没有 Simulation 的列表滚动,是不会连续滚动的。
ClampingScrollPhysics 的 createBallisticSimulation 方法中,使用了 ClampingScrollSimulation(固定) 和 ScrollSpringSimulation(弹性) 两种 Simulation ,如下代码所示,理论上只有 position.outOfRange 才会触发弹性的回弹效果,但 ScrollPhysics 采用了类似 双亲代理模型 ,其 parent 可能会触发 position.outOfRange ,所以推测这里才会有 ScrollSpringSimulation 补充的判断。
学员评价