onScaleUpdate method

void onScaleUpdate(
  1. ScaleUpdateDetails details
)

Implementation

void onScaleUpdate(ScaleUpdateDetails details) {
  if (details.scale == 1.0) {
    return;
  }
  double scale = _mLastScale * details.scale;
  if (maxScale != null && scale > maxScale! && _mScale == maxScale) {
    return;
  }

  /// 以缩放开始两指中心为坐标,计算缩放距离
  double dx = (_mScaleCenterPoint!).dx;
  double dx2 = dx * details.scale;
  double distance = dx - dx2;
  double x = _mLastScaleOffsetX * details.scale + distance;

  _setScale(scale);
  _setScaleOffsetX(x);
  notifyChanged();
}