問題代碼 在方法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