问题代码 在方法acceptGesture(DragGestureRecognizer)java
_state = _DragState.accepted;
/// 1
final Offset delta = _pendingDragOffset;
/// 2
final Duration timestamp = _lastPendingEventTimestamp;
/// 3
_pendingDragOffset = Offset.zero;
复制代码
当咱们开始拖动的时候会执行以上代码,_pendingDragOffset 是用于判断是否开始拖动的,当 _pendingDragOffset >kTouchSlop 则调用acceptGesture确认开始滑动,而这个时候 _pendingDragOffset 是 大于kTouchSlop的至少是18px,这个值的重置在3处,,而1处的delta是初始偏移值,因此致使了这个抖动 而,咱们只须要把它改为android
_state = _DragState.accepted;
/// 1
final Offset delta = Offset.zero;
/// 2
final Duration timestamp = _lastPendingEventTimestamp;
/// 3
_pendingDragOffset = Offset.zero;
复制代码
也就是 delta 设置为0 就行了bash
对于flutter 改源码,会当即生效,即便是多人开发这个更改工做量也是很小的。并且能够直接更改系统代码!!!能够直接更改系统代码!!!能够直接更改系统代码!!!
所以flutter的扩展自用度,真的不可思议,(至少在flutter底层代码没被写进Android系统前是这样的。。。)spa